Почему в интерфейсных модулях, используемых для связи с DLL, запрещено определение процедур?

Часто определённная в API библиотеки функция оказывается макросом на Си и в Блэкбоксе приходится использовать 2 модуля: один -- для native-функций, второй -- для макросов, реализованных в виде процедур.