В A2/ЯОС фактически есть обработка исключений, а именно, там есть блок Finally и раскрутка стека. При возникновении исключения
стек раскручивается до какого-то дна, каковым, видимо, является процесс. Это здорово в том смысле, что нет обработчиков исключения в пользовательском коде. Однако это преимущество слегка иллюзорное. Блоки Finally всё равно обрабатываются во время обработки исключения, а значит, испортить всё дело они могут. Просто ставим там бесконечный цикл и приехали - исключение никогда нормально не завершится. Если же мы снимаем процесс, то скорее всего блоки Finally не обработаются. Не обработаются они и в случае, если процесс зациклится, зависнет на блокировке (а может быть, и если переполнит стек). Таким образом, блоки Finally представляют из себя слегка иллюзорную форму защиты ресурсов или гарантированного выполнения чего-то, даже если случилась ошибка.

Здесь Оберон никак не уникален - подобные проблемы есть в любом языке. Но я пишу это к тому, что невинность сохранить здесь уже не удалось. А раз так, то можно пускаться во все тяжкие.

Что можно добавить в обработку исключений, чтобы она осталась минималистичной, но в то же время была чуть более развитой? На самом деле не знаю, что я тут подразумеваю под "развитостью". В некоторых случаях хочется использовать исключения для быстрого завершения какой-то деятельности без того, чтобы плодить кучу кодов возврата.