Meine Erfahrung für externe Funktionen/Prozeduren ist auch folgende:

- Erstellung des Programm-Objektes (COBOL/CL/RPGLE)
- Generieren der SQL-Signatur per SQL, diese wird im Objekt zusätzlich eingetragen, SAVRST in anderem System funktioniert
- Neuerstellung des Programmes, Ursprung wird ersetzt (verschoben in QRPLOBJ), die Signatur im Programm ist weg, SAVRST im anderen System funktioniert nicht

Fazit:
Nach Neuerstellung des Programmobjektes ist die Funktion/Prozedur per DROP zu entfernen und per CREATE neu zu erstellen, was natürlich die Quelle voraussetzt.
Der CREATE trägt die Signatur neben den QSYS2-Tabellen eben auch im Objekt selber ein.
Wenn das Objekt entfernt / ersetzt wird, ist die QSYS2-Signatur immer noch gültig.
Diese kann aber beim Systemwechsel nicht mitgezogen werden.
Bei OS-Update funktioniert das aber.