Thank you for explanation and efforts!
> So if 'call' (and possibly other functions) return some optional value
> in '@@' (and perhaps '@@@'), it will not interfere with '@', and won't
> need a new global variable every time.
> The symbols '@', '@@' and '@@@' can thus be seen as volatile, being
> overwritten with auxiliary values whenever needed. This is already the
> case in the REPL, where they are overwritten each time a result is
> printed. To obtain the exit code in the REPL, you would do something
> : (or (call "command" "arg") (quit "command exit code" @@))
> Does anybody have objections against this? If not, I'll put it tomorrow
> into pil64, pil32 and Ersatz.