Hola
alivan.
Estuve toqueteando porque me dio curiosidad también. Mis conclusiones:
Lo más curioso es que así si funciona:
Código CSS:
Ver originalsection div:first-child{...}
section ul:first-child{...}
section li:first-child{...}
También funciona cuando quitas completamente <ul> y <li>.
Luego leyendo la biblia:
Cita:
Iniciado por w3c The :first-child selector is used to select the specified selector, only if it is the first child of its parent.
Es decir, en este caso P no es el primer hijo de DIV, es el segundo (el primero es UL). Lo que explica que funcione de la manera arriba mencionada.
Por lo que creo que en tu última pregunta está la respuesta.
No me gusta decir estas cosas sin estar seguro, pero yo lo interpreto así. Si viene algún maestro por aquí para confirmarlo me quedo más tranquilo.