Я не спорю, что ошибка времени компиляции лучше. Лично мне не очень понятно, что планируется получить в итоге.
При изменении языка можно руководствоваться разными соображениями:
1. Джаст фо лулз.
2. Сделать качественно на чужом опыте.
3. Сделать качественно, но не так как у других.
Если 1 пункт, то и говорить не о чем

(что хочешь, то и воротишь)
Если 2 пункт, то можно сделать 1:1 как в O2, к примеру. Тут тоже не о чем особо говорить (варианта всего 2... либо делать, либо нет)
А вот третий пункт требует сжигания калорий в большом количестве. Закон сохранения энергии никто не отменял. Качественный результат получается только при значительных затратах энергии.
Кто-то эту энергию должен потратить. Либо другой чувак (пункт 2), либо сам (пункт 3).
Энергию, конечно, можно разными путями тратить. Можно усиленно думать и методично добиваться результата, а можно ткнуть пальцем в небо и долго-долго потом наступать на грабли, модифицировать и отлаживать сие.
Предлагаю увеличить масштаб. У тебя мегапроект. Ты нашел все 100 мест (я не преувеличиваю - 100), где этот енум фигурирует в CASE и поправил эти места. Что дальше?
Мне очень сложно себе представить, чтобы у объекта было 100 методов.
И кроме того, даже эти сто методов, по идее, должны быть в одном модуле, если мы на Обероне пишем.
Я в общем то не против ООП. Даже всеми руками за. Вопрос лишь в том,
как это сделать правильно. А это
как, имхо, должно вырасти из весомых причин.
Можно сделать как в O2, но чем это будет отличаться от O2?
