Да, вполне себе можно создавать тэг script динамически и т.д. (RequireJS так и делает). Но будут подводные камни, особенно если надо поддерживать старые браузеры. Плюс остается вопрос сборки -- раз вас беспокоит размер, значит, вы не будете выкладывать на прод кучу отдельных файликов, а будете их склеивать, а как определять порядок?
само приложение относительно небольшое
Для RequireJS есть
almond, на проде оверхед составит всего 1 кб -- не так уж много, а?
Еще вариант -- Browserify, оверхед -- вообще около 500 байт, куда меньше? Недостаток, конечно, что нужен этап сборки, но многие не против, попробуйте и вы.
не передаем никакой путь к файлу, а только название объекта, а библиотека его сама находит
не совсем название, это, скорее, виртуальный путь (
require('../model/order', ... )
), который резолвится в физический, исходя из корня проекта, пути к текущему модулю и алиасов и шимов, если они прописаны в конфиге.