Записи и массивы возвращать можно и нужно — для этого используются VAR-параметры. Было Оберон-расширение, в котором делалась попытка представить возврат сложно-составного результата прямо по RETURN. Это расширение называетсяOberon-X. Но ничего семантически нового в этом нет, просто сахар. Ну какая разница — вот так написать:

## Код:
```
PROCEDURE Proc (): ARRAY OF CHAR;
```
или вот так:
## Код:
```
PROCEDURE Proc (VAR result: ARRAY OF CHAR);
```
