Den Browser interessieren weder zeitgemäß, DomContentLoaded, load noch Webapps. Ein Script, das im Head steht, muß an die JS-Engine übergeben und dort erst einmal auf korrekte Syntax geprüft werden, Eventhandler registriert usw. ..
Während dieser Zeit wird das Dokument nicht weitergeladen. Den Nutzer, der es abruft, sieht demzufolge einen Augenblick länger keinen Inhalt.
Hierher weht also die Musik.
Insofern sehe ich es - von Sonderfällen abgesehen - weiterhin als zeitgemäß an, Javascript ans Ende des Dokuments zu setzen, damit der Nutzer bereits Inhalte sieht, während danach das Javascript zum Zuge kommt.
Nach dieser Argumentation ist das allenfalls eine permissive Adressierung des Problems. Mit async- und defer-Attribut, bzw. mit einem Moduleloader seiner Wahl (z.B. require.js) ist man imho. besser aufgestellt. In Zukunft vielleicht sogar mit ECMAScripts hauseigenen Modullösung.