Laut Doku ist der Zeitpunkt der Erstellung der Prozedur entscheidend:
Wenn das Objekt beim Create Procedure existiert, wird das im Objekt vermerkt.
Man kann aber auch eine Procedure erstellen, bevor das Objekt vorhanden ist.

Des weiteren (beim Entwickeln ist das ja halt so), wird ja beim CRTxxxPGM das Ursprungsobjekt in die QRPLOBJ verschoben (was ja so gut wie ein löschen ist).
Die SQL-Registrierung wird aber mit verschoben und im neu erstellten Programm nicht automatisch wiederholt.

Der Verweis im SQL-Repository ist aber ein dynamischer Verweis und funktioniert auf dem Entwicklungssystem ja weiter.

Also:
Nach einem CRTxxxPGM sollte der Create Procedure auch wiederholt werden um den Eintrag im PGM-Objekt zu bekommen.