Hola:
En el primer ejemplo entre padre e hijo hay un nodo de texto, o sea el firstChild no es un tag; en el segundo el firstChild es un tag... podrías asegurarte consultando el tagName o el nodeType.
No estoy seguro de que todos los navegadores lo consideren así.
Saludos