¿Cuál es la diferencia entre "x es nulo" y "x == nulo"?

En C # 7 podemos usar

if (x is null) return;

en lugar de

if (x == null) return;

¿Hay alguna ventaja de usar la nueva forma (ejemplo anterior) que la sintaxis anterior?

¿La semántica es diferente?

¿Es solo cuestión de gustos? Si no, cuándo usar uno u otro.

Referencia.

Respuestas a la pregunta(2)

Su respuesta a la pregunta