in file esterno e' sempre meglio,
non e' pero' errato inserire blocchi di script nell' head del documento
(tantomeno nel body, anche se quest ultimo caso e' meglio cercare di evitarlo il + possibile)

considera anche l' aspetto validazione:
non riuscirai a validare xhtml strict un documento che contiene script fuori da blocchi cdata dove, x es., appare il carattere e commerciale (&)
lo stesso script in file esterno non dara' alcun problema di validazione

ciao