For further clarification:
RESOLVE can only resolve macro elements, but it can not execute the resulting code.
If macro elements within a macro are meant to be created/changed by non-macro code contained in the macro, this will not work as intended, as the non-macro code will never run.
CALL EXECUTE, OTOH, feeds code into the execution queue. But you need to take care when a macro is involved, as macro triggers will be resolved immediately while all other code can only run after the current step finishes. Therefore, %NRSTR is needed to mask macro code during the insertion into the execution queue; it will then be resolved when code is fetched from the queue.
... View more