前スレか前々スレあたりで、"$@" と書くべきか、${1+"$@"}と書くべきかって議論、
あったと思うけど、

zshで、setopt shwordsplit してる環境だと、
${1+"$@"} ではスペースが不本意に解釈されてしまって、引数がそのまま引き継げない。
やはり、単純明快に "$@" と書いた方が良いという結論。

$ zsh
zsh$ setopt shwordsplit
zsh$ set 'hoge boke'
zsh$ for i in ${1+"$@"}; do echo "$i"; done
hoge ← 2つに分かれてしまう
boke ← 2つに分かれてしまう
zsh$ for i in "$@"; do echo "$i"; done
hoge boke ← 正常