... ich denke, dass man da noch etwas tiefer einsteigen muss:
Überladung und optionale Parameter sind zwei verschiedene Dinge, wobei Überladung der stärkere Mechanismus ist, weil bei der Verwenung bereits zur Compiletime geprüft wird und die zu übergebenden Parameter keiner Anordnungsbedingung unterliegen.
Namensparameter sind zwar sehr flexibel, was aber gerade die Prüfbarkeit zur Compilezeit einschränkt; zudem muss der Verwender mehr Wissen über die innere Implementierung haben.

Was das ursprüngliche Problem angeht (Überladung einer external (RPG) UDTF) ist es wohl am einfachsten (und damit auch am besten), die Überladung in der RPG Implementierung mit abzubilden und mehrere RPG Aufrufpunkte zu haben (1 : 1 zu den Überladungen). Hier bietet sich dann eher ein SRVPGM an. Die Verzweigung kann dann wieder in einer Implementierung münden, die den Hauptteil der Logik einthält.

D*B