Hay buenas y malas razones para hacerlo.
BUENO) Si el script no es crítico para la construcción de su página DOM, es bueno hacerlo lo más tarde posible, como sugiere Jim Puls, generalmente en la parte inferior de la página en el nodo raíz BODY. Esto es bueno porque permite que el XHTML rinda de inmediato, creando un efecto psicológico de que la página "carga más rápido". En realidad, se está cargando a la misma velocidad, excepto que el navegador no está gastando ciclos de CPU descargando, interpretando y ejecutando el JS mientras el usuario mira fijamente una ventana blanca del navegador.
MALO) Las etiquetas de scripts normalmente se descargan e interpretan en el orden en que están encerradas. Esto significa que debe administrar cuidadosamente el orden en que están incluidos. Además, debido a que se cargan en serie (uno a la vez), paga un alto costo por cada archivo adicional al que hace referencia porque el navegador debe establecer conexión, verificar caché, descargar, etc. Trucos como "DEFFER" de IE no son estándar. Por este motivo, recomiendo encapsular su javascript en un único archivo cuando pase del desarrollo a la producción, de modo que los usuarios no tengan que realizar múltiples conexiones en serie. También asegúrese de tener activada la compresión gzip.
BUENO) Hay una manera de cargar los scripts con AJAX: llama a su servidor para solicitar el JS y genera un evento cuando se carga el archivo. A continuación, puede invocar eval (o una variante más segura) que lleva sus símbolos al ámbito. Esto permite descargas paralelas de script.
BUENO & MALO) En IE, debe evitar manipular el árbol DOM antes de que el DOM se haya cargado por completo. Busca el evento 'dom: loaded' para esto.