Почему странность. Язык запрещает экспорт из функций, это просто не имеет смысла. А на каком этапе проверки, синтаксическом или семантическом, такая программа будет отсеиваться это не важно. Если компилятор запрещает такую программу. Тогда в этом нет никакой пакости - для программиста некомпиляторо-писателя.
Если разрешает, то компилятор должен игнорировать эти метки в процедурах. Тогда это семантическая перегрузка оператора "*", в модуле она экспорт, а в процедуре - игнорирование. Тогда метка в процедурах это семантически незначимое излишество языка, как комментарии, и в этом будет странность. Тогда это противоречит сложившемуся представлению об "*" как метке экспорта, и в этом тоже будет странность. Хотя с точки зрения формальных спецификаций языка никаких странностей нет.