Hola,
Realmente solo verifica que por lo menos uno no sea vacio. Con tal de que un campo tenga contenido, ya se ejecuta. Y eso es porque usas ||, que es el operador logico OR (o). Eso quiere decir que "no esta vacio tal O no esta vacio cual O no esta ...".
Y si lo que quieres es forzar a que todos tengan valor, lo que quieres es " no esta vacio tal Y no esta vacio cual Y no esta ...". Es decir, la operacion logica AND (y). Y eso es con el operador &&. Asi que sustituye todos los || por &&.
Saludos.
PD: revisa la seccion del manual
www.php.net/operators , la seccion de los logicos. Veras como es la tabla de la verdad para cada operador logico.