Nun ja man sollt nicht immer alles unterschlagen. *NOPASS ist ebenso angegeben.
*OMIT bei der Übergabe wird als NULL-Pointer übergeben, deshalb muss man mit %addr() prüfen, ob eine Adresse gesetzt ist, sonst gibts wie immer den MCH.

Allerdings ist hier nicht so sehr das Problem der fehlenden Übergabe als dass beim 2. Aufruf der Parameter mit einer invaliden Adresse, also auf Müll zeigt, durch den vorherigen Aufruf besetzt ist.
Bei *NOPASS reicht daher die Abfrage auf %ADDR() = *NULL hier nicht mehr.
%parms() ist hier Pflicht.