Big +1.
Creating a class, even with several subclasses, is a pigeon-holing endeavor.
Yes. That is the point of a class-based system.
Ninjas have such diverse skillset that it’s really hard to pin them down into the straitjacket of a class…
You could say the same thing about any other class. You can
always find some example or someone’s preference that doesn’t perfectly match the class as written. So every class and sub-class is a compromise.
This discussion is a case in point. The shadow monk is clearly intended to fill the “ninja” niche, and covers almost all of the archetypal features. Assuming they’re clad in black, most folks are going to watch them do their thing and think “ninja.”
Are they your perfect iteration of a ninja? Apparently not. But neither is yours the same as anyone else’s. Thus, compromise.
We could be having the exact same discussion about wizards, rangers, barbarians, etc.
Edit: for a class-based system to work, you have to be able to settle on a broad archetype that is distinct enough from the other classes to make sense as needing an entirely new chassis. "Ninja" is not distinct enough from "monk" to make an entire class without a ton of overlap, but is distinct enough to justify a subclass. Thus, the shadow monk.