Acho que você está procurando a substituição do parâmetro :-
:
$ restofarglist='abc,def'
$ echo ${(s/,/)${:-arg1,arg2,$restofarglist}}
arg1 arg2 abc def
De man zsh:
${name:-word}
If name is set, or in the second form is non-null, then substitute its value;
otherwise substitute word. In the second form name may be omitted, in which
case word is always substituted.
Na verdade, você pode tornar este exemplo um pouco mais curto:
$ echo ${${:-arg1,arg2,$restofarglist}//,/ }
arg1 arg2 abc def