Diferencia entre SystemInformation.ComputerName, Environment.MachineName y Net.Dns.GetHostName

Por lo que he visto, en la documentación de MSDN y en otras preguntas aquí sobre SO, hay cuatro formas de obtener el nombre de la máquina local.

Environment.MachineName;
System.Net.Dns.GetHostName();
System.Windows.Forms.SystemInformation.ComputerName;
System.Environment.GetEnvironmentVariable("COMPUTERNAME");

¿Hay una diferencia en lo que devolverán sus métodos o todos devolverán exactamente lo mismo todo el tiempo?

Nota: La primera vez que vi la lista en este post:¿Cómo obtengo el nombre de la máquina local?

Respuestas a la pregunta(3)

Su respuesta a la pregunta