Hört sich gut an.
Ich habe immer Probleme, wenn es um 'call bei reference' und 'call by value' geht (bekomme ich nur durch try and error raus). Bei dem einen ändert die aufgerufene Funktion, und der Aufrufer muss leiden, oder freut sich halt über den geänderten Wert. Hier würde ich als Aufrufer die Krise kriegen.