Потому что интерфейсный модуль не компилируется в код. Из него получается только sym-файл. И присутствие интерфейсного модуля на этапе выполнения программы не требуется.

Вообще-то, это касается только "целиком интерфейсных" модулей, когда после MODULE M [] указывается DLL, к которой подключаемся.
Вообще говоря, можно этого не делать, а указывать конкретную DLL прямо после заголовка процедуры (см. "Платформенно-зависимые особенности"). Тогда один модуль может описывать точки входа в несколько DLL - и, наверное, обычные процедуры тоже.