Проблема вовсе не в COPY, а в том, что надо заранее предусматривать, что данных может оказаться больше и пользоваться тогда не COPY, а каким-нибудь StringBuilder-ом. Но с другой стороны может стоять другое требование, что нужно вообще не использовать память на куче или минимизировать её использование! Тогда никакой StringBuilder не подходит и надо банально объявить статические массивы больших размеров и таки пользоваться COPY. Нужно подобные решения продумывать в каждом конкретном случае.
Вы не любите строки в Оберон-е? Просто их надо уметь готовить