Oi, Piter, como vai?
Sinto muito pela demora em retornar.
Todo JavaScript inserido numa página (seja onde for) executa de modo síncrono por padrão. Isso significa que quando a tag script é encontrada o browser não renderiza mais nada na tela enquanto esse script não for carregado e executado.
Colocar um script no head garante que ele seja executado antes de qualquer elemento colocado no body. Isso significa que ele garantidamente estará presente quando a página for "montada". A desvantagem disso é que o usuário só vai ver uma página em branco até que o script termine de ser executado.
Colocar um script no final do body, por outro lado, permite que o conteúdo da página apareça para o usuário sem ter de esperar a execução do script. Isso passa a impressão de um site mais rápido.
Acredito que essa impressão que você teve seja por causa de "alerts" do JavaScript, que realmente passam essa impressão de serem carregados antes da página.
Espero que essa explicação te ajude.
Parabéns pelo empenho nos estudos!
Continue praticando.
E caso tenha quaisquer comentários ou dúvidas a respeito de alguma aula ou desafio, pode postar aqui no fórum que vamos te responder!
Abraços e bons estudos!