Ein Return von mehr als 1 Wert ist nun mal nicht zulässig.

Es ist deshalb durchaus erlaubt (bei entsprechender) Dokumentation, die Übergebenen Variablen zu verändern ! Der Return gibt dann z.B. nur zurück, ob die Funktion Korrekt ist.

Viele C-Funktionen arbeiten genau so. Und es ist trotzdem als Kapselung zu verstehen.