>> assign_outer runs in a subshell, so it cannot modify the parameters of
>> the parent shell.
> More specifically, there's this comment in zargs:
>
> # Everything has to be in a subshell so that we don't "wait" for any
> # unrelated jobs of the parent shell.
>
> The "wait" is necessary to set the return status of zargs in (as
> nearly as possible) the same way that xargs would do, so you can't run
> current-shell actions with zargs.
Thanks Roman and Bart for the explanation. Makes perfect sense.
> What's the context of your question and your desired end result?
My use case might be too specific: I wanted to somehow capture the end
result of the processing of all the calls made by zargs. I didn't want
to rely on the zargs return code when zargs is used with -P as it was
missing values before Zsh 5.9 and it's intermittently failing in Zsh 5.9
and macOS. (https://www.zsh.org/mla/workers/2022/msg00611.html)
So I though having the called functions assign a status code in an outer
parameter could work. It was not a good idea... :- )