Why is Computer Science education not broken down into specialties?

In business, people who want to be accountants major in accounting, would-be marketers study marketing, etc. In medicine, they have oncology for those who study tumors, cardiology for heart problems, etc. So, why isn't it the same in computer science? Technology now has so many specialties, yet we still maintain a one-size-fits-all way of educating its workers. Long gone are the days of the Cold War, when high technology was so underdeveloped that a jack of all trades was desirable. Now we have an entire industry of technology covering many different products and services. A network administrator is not the same as a database administrator; a software developer is not the same as a web developer, etc. Why is it that CS programs have not adapted to an environment where everyone is specialized? Certainly we can direct more students to STEM fields if we allow them to specialize instead of funneling all of them through very general monolithic programs. If a level of commonality is desired, why not organize it like a college of business with common core classes, and specialty classes for their chosen profession. That should add some more depth into the program. Also, I think information systems should be taken away from business and reorganized within the CS family of specialties. IS has been poisoned by management types; they absorbed a lot of buzzwords, and lost the ability to code (apologies to IS folks, just my opinion).

What do you think?