I think you are missing the point. You study CS because you are interested in Computer Science. If you just want to learn some basic programming and such, you study Software Engineering or whatever instead.
For those of us that has a CS degree, we simply dont need to study stuff like XML at uni since we can learn the API:s in an afternoon or so.
Your arguments are a bit like "why do neurosurgeons need to study all this internal medicine stuff, give them a circular bone saw and a scalpell and let them practice instead."
As a computer scientist, you should not just know the way things (languages, tools, technologies etc) work and look but focus on why they are built the way they are and look for better ways to do things. And this no matter if you just work with creating a web form for an insurance company.
It is quite obvious that you do not have a CS degree yourself, or you would know that 80% of the stuff you learn is not technology related but the basis for all computing (maths) and thinking critically about things. Doing that you are always looking for ways to do things better and in a smarter way.
So the problem is not the contents of the CS education, we will always need front-line competent folks that doesnt fall for market hype but strives to take the CS discipline to new heights, while we will also need people creating web forms for insurance companies, which you do not need a CS degree for, even though you are more likely to do a better job if you have one.