Is it possible to change the user's shell system-wide without using chsh?

You should be able to use

sudo chsh -s /usr/local/bin/fish USERNAME

to change user USERNAME to a shell which isn't listed in /etc/shells.

PS: Might be worthwhile to create a second admin account first so you won't get locked out if the behaviour changes with future releases.