print -r -- ${(j.|.)@}
Ah! I tried printing everything but that -- the obvious thing. Ok, so the multiple args are converted to one string with bars between and somehow that ends up as an array of space-separated args in '@'. I think I'm missing something important, I can't recall any such thing with bars like that. zsh knows that the pattern expands to parameters too, I'm ... I guess the pattern isn't expanded until we know were within the $parameters ... yeah, so that's fine. But I'd better get this 'bars' thing straight.