Я абсолютно согласен с Владом: с Оберона на С++ перевести достаточно легко. Обратно - значительно сложнее из-за управления памятью.
А механизмов инкапсуляции в С++ больше и с их помощью моделируется какой угодно доступ. И пространства имен, и классы с тремя видами доступа, и файлы (можно в файле сделать локальной как функцию, так и любую переменную. И френдить всех со всеми не требуется. Герб Саттер приводит в своей книжке простой прием, в котором дружественность выборочная - одной функции открыто, другой - закрыто.
А доступ только по чтению, который так часто приводят оберонщики в качестве плюса Оберонам - это просто свойства. Которые в каждой интегрированной С++ среде реализованы. И еще на РСДН могу статью показать "Свойства в С++". А в Додиез своства уже как конструкции языка входят.
С++ значительно более гибок в смысле инкапсуляции. Но эта гибкость - для экспертов, а не для простых прикладных программеров. Как говориться, палка - о  двух концах.