Das CALL-CMD kennt keine Parameter "by value", was hier zu Testzwecken verwendet wird. Ausserdem ist aus Performance-Gründen ein Call by Reference immer schneller als ein Call by Value.
Die Ausnahmen hängen jedoch von der Programmiersprache ab. In RPGLE ist Value jedoch ein Konstrukt. Intern wird immer eine Kopie erstellt und dann doch nur die Adresse der Kopie übergeben.