Für externe SQL-Prozeduren hast du 2 "Sourcen".
1. Das Programmobjekt selber
2. den SQL-Befehl "create procedure/function"
Letzteres ist sicherlich als "Quelle" anzusehen.

Das Problem:
Der SQL-Create trägt seinen Code in des Programm-Objekt ein, so dass eine Wiederherstellung im Ernstfall möglich ist.
Zusätzlich steht die Definition natürlich im SQL-Repostory (SQLFunction, SQLProcs, SQLParms) der QSYS2.
Nun wird aber das Programmobjekt aus irgendwelchen Gründen mal neu erstellt (Fehlerbehandlung).
Die SQL-Definition zur Wiederherstellung ist somit verschwunden, da das ersetzte Programm über die QRPLOBJ verschwindet.
Nun müsste eigentlich der "Create-Befehl" wiederholt werden, was allerdings nur mit dem vorherigen Drop funktioniert (aber wer denkt schon daran).
Daher macht es durchaus Sinn, auch den Create-Befehl auf dem Echtsystem aufzuheben, da du den ja beim 1. Mal auf jeden Fall brauchst.