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

По умолчанию всегда грузится легковесное микроядро, при необходимости подгрузки чего-либо оно дергает макроядро(постепенно в фоне) — которое вследствие модульности постепенно кешируется.

AMD немножко не в ту степь я думаю…
Выкинуть из головы весь код и сделать декомпозицию задачи в целом. И сразу станет понятно куда какой код «класть». Ну или может даже и код тоже декомпозировать.