Подписан на один чат в телеграме, где общаются компиляторщики. Так вот, по моим ощущениям больше 50% обсуждений там по поводу того, как и чем распарсить какой-то язык (часто без определенной грамматики). В контекте Оберонов там обсуждать то нечего, за день-два можно написать и лексер, и парсер (без всяких парсер комбинаторов, автоматов, регулярных выражений и прочего). То есть люди сначала создают себе сложности, определяя сложный язык, а потом героически сражаются с этой сложностью, которую сами и же и придумали.
Оберон хорош своей простотой. Это его основная цель.
Можно что-то убрать или добавить туда и тогда он уже не будет Обероном.

Тут еще параллельно проскакивает мысль о том, что точку с запятой можно заменить на перенос строки. Считаю, что это не есть хорошо. Когда я участвовал в олимпиадах по программированию, я видел много различных "стилей". Один из соседней команды любил писать "квадратные" программы. То есть исходник представлял собой практически квадрат и на одном экране умещалось все решение олимпиадной программы и не надо было листать вверх и вниз. Кому-то может быть так удобнее, кому-то по-другому. Если всех заставлять переносить каждый оператор на новую строку - это будет еще одним минусом языка. Независимость от переносов строк в Обероне (в Оберон-07 как минимум) проявляется даже в присваивании строк. То есть вся строка должна умещаться на одной строке:
## Код:
```
s := "Hello World"
```

В Си же можно переносить стоковую константу и иногда появляется такой некрасивый код:
## Код:
```
if (something)
  {
    s = "Hello
World";
  }
```

При этом, если выровнять по отступам, то поменяется и сама программа. Кроме этого, возникают еще проблемы с тем, что после слова Hello могут быть еще невидимые символы до переноса строки и мы не знаем есть ли они и сколько их.
Мое мнение, что не надо в язык программирования вносить зависимость от переносов строк.