В Делфи удлинение строки не дешёвое, а обычными средствами менеджера памяти производится (GetMem, FreeMem, ReallocMem). Фактически, в Обероне для Ansi-строк эквивалент:

TYPE
STRING = POINTER TO ARRAY OF SHORT CHAR;

Рассмотрим особенности Делфи строк:
1) Получение Length через поле вместо strlen в pchar через сканироdание строки.
Оберон: LEN.
2) Строки динамичны и занимают ровно столько места, сколько в них символов, не считая накладных расходов (в Делфи до 2009 версии это 8 байт на длину строки и кол-во ссылок на неё + расходы на блок памяти со стороны менеджера).
В Обероне все нужные операции присутствуют для массивов. Массивы динамичны.
3) S1:=S2 вызывает не копирование, а присвоение по ссылке. Для копирования в Делфи есть операция UniqueString, которая убеждается, что на текущий массив символов только одна ссылка (если более, выделяется новый блок и туда копируются данные). В Обероне присвоение объектов тоже по ссылкам + сборка мусора универсальная (в Делфи только для строк). Реализация аналога UniqueString - несколько строк.

Так что фактически это в Делфи было серьёзное нововведение с автоматическим контролем памяти, а Оберон мог бы поддерживать строки с лёгкостью. Хотя бы указанные два типа, покрывающие 90% нужд. А для utf-8 люди и сами напишут конвертеры.

Исключительно имхо.