But in both yash and zsh (when in sh emulation), the two Bourne-like shells in that list, that expansion is still subject to split+glob (and still empty removal even in zsh even when not in sh emulation), so you still need to use the awkward "${array[@]}" syntax (or "${(@)array}" or "$array[@]" in zsh which are hardly easiereasier to typetype¹) to preserve the list (csh and tcsh have similar issues). That split+glob and empty removal is the Bourne heritage (itself to some extent caused by the Thompson shell heritage where $1 was more like macro expansion).
Or when $IFS contains multi-byte characters, or bytes not forming valid characters.
¹ in yash however, "$array" behave like "${array[@]}" while zsh's "$array" behaves like "${array[*]}". Less ugly / awkward though maybe more surprising.