Die Service-Programmdiskussion halte ich in diesem Rahmen für nicht unwichtig, da man sich viele Abhängigkeitsregeln und Recompiles durch vernünftiges Planen komplett sparen kann.

Wenn ich eine SQL-Tabelle ändere, ggf. nur Recompile für die Programme, die es brauchen, da die anderen, wenn sie denn mit SQL arbeiten, davon gar nichts merken. Voraussetzungen sind natürlich vernünfitge Defaults bei neuen Spalten.
Ansonsten eben leider alle Programm/Module/Services, die diese Datei/Tabelle referieren. Allerdings nicht die in Folge abhängigen Services.

Wenn ich Services ändere gilt dies ebenso.

Wenn ich wie oben diskutiert, für jedes Modul einen Service erstelle, kann es im Zweifel dann passieren, dass der Recomile eines Service hunderte Recompiles der Abhängigen Services auslöst, was vollkommen unnötig ist.
Verwende ich eine SRVPGM-Source, wandle ich das Modul und erstelle das Serviceprogrmm (mit Moduliste) nur neu.

Damit ruduziert sich eben auch der Aufwand von Make-Files und Abhängigkeitsregeln.