Коллеги выше уже разъяснили основное.

Но если речь не о типе "пассивной" записи, без поведения, то чаще всего лучше объявлять EXTENSIBLE (как и было в классическом Обероне). Проблемы хрупкости нет, а возможность расширить сообщение или какой-то параметризующий параметр остаётся.

В отношении классов:
- если проектируете что-то широкого применения, то лучше только ABSTRACT (не закладывать хрупкость, пусть и ценой уменьшения повторного использования).
- если речь о структуре в конкретно вашем приложении (не в переиспользуемом компоненте), то при явной целесообразности можно и EXTENSIBLE, не надо совсем жёсткой догматики.

Есть случаи, когда EXTENSIBLE и разрешение переопределять методы целесообразны и не связаны с хрупкостью, но это отдельные случаи.