1- Personalmente, trabajando en E_ALL me aseguro que funcionará en cualquier lado mi script; te parece poco para no usarlo?
2-
Código PHP:
$foo = array("hello"=>"word");
echo $foo[hello];
Al intentar imprimir una posición, $foo[hello] no existe, porque la constante hello no la definí. Ahora, si trabajas con los errores bajos, php estima que es un texto y trata de buscar $foo['hello'].
Cita: if ($_GET['var']) da false si esa variable no existe y no tira ningun reporte con E_STRICT.
Entonces el programador controla de manera directa las variables y PARA MI es mucho más sencillo.
3. No estoy con vos en eso. Ojo que no soy la razón de ser, pero lo importante
para mi, como dije, es tener YO el control, ni php, ni el usuario, y creo que vos no lo tenes en ese caso.
Por eso trato de programar de la manera más clara, sencilla, y sobre todo
explícita posible. Y repito, si quiero evaluar un valor false, uso un === false, me parece lo correcto aplicando las 3 normas que mencione antes. Yo he visto, (un poco mas jodido si), hacer hasta cosas como $var/$_GET["valor], y ni hablar de trabajar con sql...
Tené en cuenta una cosa, a veces menos es mas ;)