Ситуация с #ifdef и if понятна - Оберон не включает в бинарь те ветки if, которые при заданных значениях констант никогда не выполнятся. Выкидывать или ветвить по значению некоторой константы определения идентификаторов нельзя.
Ситуация с пересечением имен идентификаторов тоже понятна - вместо неймспейсов используются префиксы модулей, что примерно то же самое, и проблему использования модулей с конфликтами имен не исключает.

В целом, есть такое пожелание. Не хочу сказать за всех жителей форума, но я ленив. В частности, для того, чтобы читать просто тонны текста что в этой ветке, что в безмерном количестве ссылок тут. Чтобы что-то прочувствовать, мне надо простую инструкцию (надеюсь, я не один тут такой):
1. Скачать инструменты отсюда (URL), отсюда (URL), отсюда (URL).
2. Установить это, это и это.
3. Скачать исходики отсюда (URL), отсюда (URL), отсюда (URL)
3. Открыть это в этом, нажать это.
4. Открыть это в этом, нажать это.
5. Полученый trd (scl, txz, tap, udf, td0...) запустить в Спеке.

Вот так было бы круто. Так можно пощупать сразу хоть какой-то результат, почитать код, поменять его и побаловаться, оценить скорость и объем занятой памяти на строку кода. Да и готовый шаблон для создания чего-то своего. Для хобби теория скучна. Кнопки нажимать хочется. Глядишь, и вопросы с критикой из абстрактной плоскости перерастут в практическую.

Тока, если можно - пример чуть посложнее, чем Hello, world. И инструкцию в расчете не на гениев, которые из всех технологий только про Оберон не знают, а для простых смертных, которые для Спеки писали только на asm и Basic. Для всех, то бишь. Вот это дело будет!