Existe :
o alert("oi1") no header da página e
o alert("oi2") está dentro de uma function dentro do header da página.
o alert("oi3") esta no começo do corpo da página, antes destas mensagens e
o alert("oi4") esta no final do corpo da página, depois destas mensagens.
Os alerts("o11") e alert("oi2") são exibidos antes das mensagens acima.
Mas o alert("oi3") não é exibido porque está dentro de uma function."
O alert("o14") é exibido depois das mensagens acima serem renderizadas pelo browser.
Principais diferenças :
O alert("oi1") é exibido antes do conteúdo da página ser renderizado pelo browser.
O alert("oi2") não é exibido porque esta dentro de uma function.
O alert("oi3") é exibido antes das mensagens.
O alert("oi4") é exibido depois das mensagens.
Finnalmente o alert("oi2") é exibido porque a função onde ele se encotra foi chamada dentro do script.