That has to do absolute nothing with the shell, that's a Unix convention how commands parse their arguments.
I disagree, the shell is in the best situation to do something about it. Or at least it would be, if there was a consistent way for programs to report to the shell how their argument parsing works.
that would be horrific
More horrific than having to guess what switches are supported by any given command on the target machine, even though shell scripts are supposed to be cross platform?