Подводя некий (предварительный?) итог:

1)При компиляции компилятор должен сохранять информацию о имени модуля + списка экспортируемых процедур с из полными сигнатурами. Причем это так даже для статически скомпонованого приложения.

2)Реализовывать какой-либо програмный интерфейс для вытаскивания информации (1) не обязательно, ибо оный програмный интерфейс никак не определен в сообщении о языке и его приложениях. Однако программист в случае необходимости может сам это релизовать, ибо информация всё таки есть и известен её формат в данной конкретной реализации.

3)Если у нас не статически скомпонованое приложение, то обязателен динамический загрузчик модулей. (гм. что вообще говоря логично, интересно как можно в рантайме загрузить модуль не имея динамического загрузчика? или же тут подразумевается что уж динамический загрузчик то рантайм должен предоставлять, а не заставлять реализовывать его программиста?)