мне кажется надо делать так:
1. написать микроядро(в котором будет в частности упомянутый RequireJS и специфическая аритектура проекта).
2. написать макроядро(в котором будет весь весь весь js-код) во избежание всяких чудо-фич вида посреди HTTP-ответа. Это делается чудесной вещью под названием GruntJS и указанного автором набора скриптов «на каждый URL».
По умолчанию всегда грузится легковесное микроядро, при необходимости подгрузки чего-либо оно дергает макроядро(постепенно в фоне) — которое вследствие модульности постепенно кешируется.
AMD немножко не в ту степь я думаю…