Im Helptext zu RCLRSC finde ich dazu folgendes:

Example 5 (OPM)

In this example, PROGA calls PROGB, which in turn calls PROGC.
PROGC opens a file. Control returns to PROGA. PROGA calls PROGB a
second time, and PROGB invokes RCLRSC. Since RCLRSC is based upon
the position in the stack of the current invocation of a program,
the file opened by PROGC is not affected. PROGC was invoked earlier
than the current PROGB. In order for RCLRSC to close the file, the
RCLRSC command will have to be invoked by PROGA.
Dies beschreibt doch genau Dein Szenario, oder?
Daher ist es wohl "works-as-designed".