Without generalization we are lost in paralyzing (and inane) case by case judging of everything. In CS terms, generalizations are basically pattern recognition.
Can they be bad? Sure. But not because they are generalizations.
I'm not even sure what you're getting at. That you can find all kinds of types in either group? I don't think anybody disagrees.
A generalization is still valid though if it recognizes larger tendencies in each group (where there's lot of overlap, but e.g. different peaks at different approaches).
Is your position that it's illogical to even consider this? Because a lot of scientific research (never mind the parent's empirical observations) disagrees.
The key is not to not make generalizations, but to try to make their as good as you can, and to not insist to apply them to some individual instance that doesn't match them. One should also improve their generalizations over time, as new data come in.