I usually write “POSIXy shell” but I thought that was clear from context this time.
The problem is that exit statuses !=0 aren’t treated as error by default (with a way to turn that off for individual expressions). Instead you have to set multiple settings and avoid certain constructs in bash/ZSH/…
Everything that works like a modern programming language by default is fine of course
A perfect copy of you is you for all intents and purposes, otherwise I fully agree with your description.