/bin/sh is a crucial symlink in the system. For a couple of years now we've had the "sh" eselect module to handle it, yet the module is not pulled in by any package at all. I propose that app-admin/eselect-sh be included either in @system, or in [R|P]DEPEND of everything in app-shells, or in RDEPEND of virtual/shell (which would be created).
By the way, there might be further uses for a virtual/shell or something of that sort. For example, @system might not enforce bash. Well, if other packages in @system actually build and run with an alternative shell, that is.
Switching shells is always problematic. A lot of build systems expect bash and if they find something else they'll fail. Probably that's why eselect-sh is there but isn't pulled by anything.
I assigned base-system but I guess they'll agree with me that this will only bring unnecesary problems.
If you want to simply switch your users to some other shell (zsh?) there are better ways to do that.
eselect-sh does *not* belong in @system or bash (the default shell provider). for most people and thus the default), there is no need to mess with /bin/sh.
whether people want to include it as a dependency in the alternative shells, i don't really care.