Чем дженерики мешают динамике?
Из модуля торчат абстракции. Как он хранит, записывает или вычисляет, нам не нужно знать. Обращение идёт только через абстрактные функции. Те же библиотеки. Чем дин модули, лучше концепции библиотек к примеру dll?
Дженерики/шаблоны никак не мешают динамической загрузке модулей времени выполнения. Они (дженерики) выступают лишь как схема, по которой происходит генерация обобщенного кода или в код целевого языка программирования, или сразу в промежуточное представление( если таковое используется) или в код целевого процессора. При изменения самого дженерика, равно как и при изменении любого импортированного модуля требуется перегенерация/перекомпиляция клиента, и это понятно, но на возможность/невозможность использования динамической загрузки это не влияет.
У нас в Сириусе была обобщенка и никаких проблем по этому поводу ди мы не испытывали. Отказались от обобщёнки по совершенно другой причине - получается некоторое рассогласование исходного и скомпилированного кода, когда кода на яп как бы нет, а машинный код присутствует. Наиболее правильный подход в этом плане в Модуле-3, где система сборки, встречая имплементацию дженерика генерует модули на языке Модула-3, которые присутсвуют в каталоге проекта, и затем уже всё это компилируется, т.е. всё присутвует и все можно посмотреть и удостоверится, что там нет кода активации ядрёной бонбы.
Чтокасается dll в windows, то сама концепция мало отличается от динамической загрузки модулей в Оберонах, просто разные системы и разная реализация, и в dll может присутсвовать несколько таких "модулей". Кстати, старый компилятор Активного Оберона (paco) поддерживал экспериментальный механизм компиляции нескольких модулей в один объектный файл(dll в WinAOS).