This isn’t just the way CS students were/are taught. At least, it is not CS curriculum alone causing it. The issue is with overuse of categorization and taxonomies as the primary methods of memorizing, learning, and doing research.
This said, sometimes X1 really is just X with some added behavior. Our CS programs (and seasoned engineers — i certainly take blame here too) need to do a better job teaching folk how to discover and use the right model for the right problem.