Por un visitante, normalmente no se puede fingir. Pero sospecho que querrás aplicar cierto SERVER_NAME para licenciar scripts, de modo que solo puedan ser utilizados por dominios particulares. En este caso la respuesta es sí, esta variable definitivamente puede ser falsificada.
La razón es simple, el servidor establece este valor. En la mayoría de los casos, tendría PHP ejecutándose como un módulo Apache, pero a veces tiene otros módulos Apache, algunas veces tiene PHP ejecutándose en modo CGI con NGINX o IIS, a veces incluso tiene PHP ejecutándose como CLI bifurcado como un proceso secundario por un sistema personalizado servidor incorporado implementado en una nube. Esos servidores serían responsables de establecer esa variable.
Además, siempre hay una asignación manual.
$_SERVER['SERVER_NAME'] = ... // this can go above all your scripts
No importa lo que siempre será lo mismo ... su servidor. No es el servidor del que proviene la solicitud. – sachleen