Das ist nun mal Geschmackssache.
Ob viele Objekte oder wenige tun zur Laufzeit nicht so weh (s.o.).
Interessant wird es dann eher bei der Verwaltung "gemeinsamer" Ressource, also Variablen/Dateien, die global definiert sind. Dies geht bei mehreren Programmen natürlich nicht (z.B. Filehandler).
Auch das Thema ACTGRP's ist nicht zu vernachlässigen.
Serviceprogramme können eine eigene ACTGRP haben, somit auch eine eigene SQL-Schicht.
Sollen alle einzelnen Service-Programme in der selben ACTGRP laufen so muss man dies explizit bei der Umwandlung ja angeben.
Hat ein SRVPGM mal *CALLER, kann es aus verschiedenen ACTGRP's aufgerufen werden und ist dann jeweils aktiv, also nicht gemeinsam genutzt.

Beim richtigen Design der Anwendung macht für jede externe Funktion ein eigenes Programm eben weniger Sinn.

Und das Signaturproblem ist ja lösbar.