Tja, das sehe ich da nicht ganz so.
Ein rekursiver Call gilt auch dann, wenn irgendwann das selbe Programm nochmal aufgerufen wird:

PGM A
PGM B
PGM C
PGM D
PGM B <= Fehler an PGM D

Ich würde einen Call einfach mit BZ (RPG) bzw. Monitor (RPGLE) abfangen.
Im Status der SDS steht Fehler 202, gib dann einfach eine Meldung aus.