Грабли асинхронной загрузки скриптов очевидны - эта самая асинхронность. Если при классическом подключении скриптов атрибутом src тега script скрипты загружаются последовательно друг за другом (по крайней мере они исполняются последовательно, а способ их подгрузки вообще не важен, это остается на выбор и оптимизацию самого браузера), то при асинхронном подключении задача синхронизации ложится на плечи разработчика. Способы синхронизации давно известны: мутексы, флаги, семафоры, сигналы. Но javascript не очень то приспособлен к такому экстремизму. Самый простой и нормально работающий способ - это функция обратного вызова по завершению загрузки скрипта. Ок, он есть. Проблема заключается в следующем: Если я хочу добавить новый скрипт, который должен опираться на предыдущий скрипт, то надо предусмотреть некую проверку. Также нужна проверка на копии подгружаемых скриптов, то есть Вести лог подключаемых скриптов, для предотвращения дубликатов.

Проблема усложняется тем, что надо оставить старый классический способ через атрибут src в теге script и подгрузку через лоадер. Возможным решением было бы добавления шаблона для подключаемых js файлов, где указывать два параметра: имя файла и скрипт после загрузки.

Простое желание оптимизировать открытие страницы превращается в сложную, многоуровневую задачу, а там где сложно, там как правило все и ломается. Нужно придумать простое и универсальное решение. Мне пока видится Коллекция пар: имя js файла и массив колбеков к нему после загрузки. Тогда можно вставлять неоднократные штуки в виде двух скриптов. Решение может быть двумя способами: либо только средствами javascript, либо php,который бы генерировал бы аккуратный javascript. Первое более универсальное, второе потребует строгой ориентации на php код движка и невозможность использования решения внутри какого либо javascript. Остается только одно - сделать нечто такое на javascript. Назвать его что то типа asyncloader