Hola Lionel!
Gracias por enviarnos tu pregunta. Es un tema muy interesante este de la doble pasada del intérprete de Javascript y otros asuntos importantes derivados de su funcionamiento, como es el hoisting.
He buscado y no lo teníamos explicado de manera detallada en ningún artículo, por eso he creado un nuevo artículo para publicarlo en el Manual de Javascript.
Puedes consultar el artículo mencionado, que espero que aclare tus dudas en este enlace: Hoisting y otras particularidades del intérprete de Javascript.
Cualquier otra duda estamos por aquí! Saludos!