Now you're mixing two different concepts. Perhaps three.
First question: FreeBSD has to ship with at least one shell in base. One of the reasons is that users have to be able to start a login session, and have at least a minimally functioning shell. It is also needed for those parts of the base system that are implemented as shell scripts, for example the rc system. The current implementation needs a Korn-style or Posix-style shell. What exact shell implementation is used here is somewhat secondary, but there really is no benefit and grave danger in changing it.
That basic scripting shell, which is absolutely required, does not have to be any users login shell, the one they are faced with with doing interactive CLI use. For historic reasons, BSD has always shipped a csh variant for that, and this is the default login shell of the root user. But note that the login shell of any user (including root) does not have to be the same as the scripting shell that's used for mandatory parts of the system.
I was told it dangerous to change the root shell.
Yes, and no. Yes: If a clueless system administrator changes the root shell to something that breaks, then they can't easily dig themselves out of the grave they dug. That particularly includes the historically common case of a shell that is in /usr/local (not mounted if disks fail or file systems break or we are in single-user mode), or depends on shared libraries that can easily be broken. If this happens, they either need to reinstall the system, or get a functioning OS in another way (boot from USB stick or CD) and repair what they did, and that is a big hassle (and in the old days, it wasn't even possible).
No: A knowledgeable admin can change the login shell of the root user, and if they're careful, it will work fine. Classic example is to statically link that new shell, and store it in the root file system (or at least in the same file system that contains bin). With today's systems typically not having multiple physical disks, and modern file systems being very reliable, it is even possible to use a dynamically linked shell that's in /usr/local. For example, on my machine, root uses bash. If you look at /etc/rc, it clearly uses /bin/sh.
I use zsh as root shell, and every script works fine, even /etc/rc.subr .
Did you install the zsh package, and then changed the login shell for root to be zsh? In that case, scripts such as /etc/rc* do not use zsh. The way they run is: the executor looks at their first line (which is /bin/sh), and runs that program.
On the other hand, if you actually overwrote /bin/sh with a copy of zsh (perhaps a link to it), then you are indeed using it. It would be mildly surprised if the system still worked, but pleasantly surprised: It would mean that the folks who write and maintain the /etc/rc system have done an excellent job of being independent of features of specific shells, and use only the common subset.
For this reason, one of the good practices of people writing shell scripts is to test their scripts with a minimal shell. The best one for this purpose is actually the ancient V7 Bourne shell. Note: I mean the implementation written by Steve Bourne at Bell Labs, not what we today call bash. I think pdksh (can be put into a V7-compatible mode (perhaps it's a build option) that is good for developing scripts.
But yes, the number of shells in base should be limited.
Because otherwise you end up in a shell-scripting-flavor-hell.
Matter-of-fact, the correct number of shells in base should be 1, that being minimal. And since the traditional /bin/sh needs to exist, that should be the only one. In practice, this is not a good idea, since many users have come to rely on tcsh being present, and many existing installations have scripts (including login files and aliases) that rely on that.
I don't see any need to change anything here. If someone wants another shell, they're super easy to install, but they should not be in base. Personally, I always configure all my accounts to use bash, for consistency: It is a reasonably good shell (with a few annoying gnu-isms, but I can grit my teeth), and it is easily available on all machines I use.