As long as /bin/sh
isn't pointing to zsh, you haven't messed anything up. A lot of public scripts wouldn't expect to be run under zsh.
If you write your own scripts, I'd say to use zsh, but start it with #/bin/zsh
(or whatever resolves to zsh) to be explicit about the fact that it is designed for zsh and nothing else. Most scripts written aren't going to be distributed to hundred of thousands of systems, but at most used in a handful of systems. No point in not enjoying some things zsh does better in scripts.
A lot of systems have other dependencies as well, and as long as a system which has scripts in it is specifing zsh along with other dependencies, I wouldn't see the problem. zsh doesn't take up much space or introduce other problems just by being installed.
As for the root shell, you can put Defaults env_keep += HOME
in your sudo configuration. That will have sudo -s
run your usual zsh with its usual configuration for interactive, daily use. Be aware of any config that shouldn't be run as root.
sudo -i
will still run the shell root is assigned in /etc/passwd, and everything run as root would function ar expected.