La risposta è ovviamente: "dipende".

Ci sono livelli di ottimizzazione che richiedono scelte difficili o contro-intuitive o che sembrano andare contro standard di fatto o consigli di buone pratiche (o almeno, quelli più conosciuti e ritenuti erroneamente universalmente validi).

Ci sono ovviamente tanti casi da prendere in esame e valutare di conseguenza, anche considerando il tipo di utenza (se è molto "di ritorno" o sono per lo più "nuovi visitatori") e di conseguenza quanto vuoi complicarti la generazione e la manutenzione di codice per risparmiare qualche decimo di secondo in più di caricamento (che in alcuni casi ha senso fare, in altri no).

In ogni progetto, c'è del codice che ha senso rendere bloccante (cioè che sia caricato prima del rendering della pagina) e altro codice che non ha senso renderlo tale. Pensa per esempio alle librerie di 200kb (jQuery per esempio): queste non ha senso renderle bloccanti e sarebbe opportuno caricarle in modo asincrono quanto prima. Però ci possono essere dei bytes di javascript che sono essenziali per il rendering della pagina (in alcuni progetti, per esempio, noi usiamo una funzione per gestire le immagini responsive, e questa deve essere caricata prima che il browser incontri qualche tag <img>. La stessa funzione che carica le librerie in modo asincrono, e che funzioni su tutti i browser, deve essere dichiarata ed eseguita quanto prima).

Per cui, se questo codice essenziale (quindi "bloccante") è di pochi bytes, hai due scelte:

- fare un normale file esterno da richiamare col classico script src.
- inserirlo nella pagina (opportunamente minificato)

Se il codice bloccante è poco, può aver senso utilizzare la seconda: ti risparmi tutti i bytes degli header di richiesta del client e di risposta del server (oltre che tutte le latenze di una chiamata http). Inoltre risolvi anche il problema di invalidazione della cache ed eventualmente, se questi files statici sono in un altro dominio (tipo js.dominio.it invece che il classico www.*), ti risparmi anche una chiamata al dns. Questi sono tutti millisecondi risparmiati.

Se hai un sito molto visitato, e/o dove la velocità di caricamento la prima volta è essenziale per una buon prima impressione sul visitatore, sono tutti accorgimenti che si possono adottare.