I think the problem is that the terrible shell semantics are inextricable from the larger semantics of using Unix. So you could replace sh with something less dumb-stupid, but you'd still be interacting with the garbage that is the shell environment. You could then replace the latter, but at that point, well, you're off into the weeds.
I hold my nose and write shell, even as I look over at, for instance, scsh, and think ... yeah.
I hold my nose and write shell, even as I look over at, for instance, scsh, and think ... yeah.