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