Non e` esatto quello che dici, e comunque e` una questione semantica.

In linea di massima le funzioni (richiamate da qualche evento) vanno inserite nella head.
Non e` un obbligo, ma devono essere definite prima di essere richiamte e non ha molto senso inserirle in mezzo al codice HTML.


Invece i richiami delle funzioni o i pezzi di JS che vanno eseguiti subito, devono essere inseriti nel <body>.

E` importante ricordare anche che se un JS fa riferimento ad un elemento HTML, quest'ultimo deve essere stato definito nella pagina PRIMA di venir richiamato/usato dal JS.

Anche i richiami legati agli eventi devono essere inseriti nel body (salvo casi rarissimi).