Auch dieses Thema wurde hier (mit unterschielichen Meinungen) schon mehrfach behandelt.
Das Neukompilieren ist nicht erforderlich, wenn man mit Bindarylanguage und eigenen Signaturen arbeitet.
Man legt
a) eine eigene Signatur fest
b) bestimmt genau die Reihenfolge der Exporte
Ohne Signatur rechnet das System an hand der Exporte immer eine eigene aus, so dass diese sich halt mit jedem neuen Export verändert, mit eigener Signatur gibts dieses Problem nicht.
Neue Export müssen immer am Ende angefügt werden!
Begründung:
Der Compiler merkt sich den Einsprungspunkt an hand der relativen Position in der Liste.
Verschiebt sich die Liste, wird ohne Signaturwechsel sogar die falsche Prozedur aufgerufen!

Ohne Bindarylanguage sortiert der Compiler (bzw. CRTSRVPGM) die Exporte alphabetisch und rechnet eine neue Signatur aus.
Dies führt dann eben zur Neucompilierungsarie damit es keine Runtimefehler gibt!

Empfehlenswert ist auch ein eigenes BNDDIR.

Wie du die Serviceprogramme organisierst bleibt letztlich dir überlassen.
Es macht aber durchaus Sinn, globale Funktionen und Business-Funktionen (nach Theman, Aufgaben)aufzuteilen.