I see where you're coming from with this, David. I think cross-discipline expertise IS very important indeed. Where you and I may not agree though, is the HOW one should acquire such cross-discipline expertise. I think we need to always ask ourselves, is university really the best place to learn about another disciplines?
Take me for example. I came into web development almost purely by accident, when I was knocking about jobless after quitting law and decided to join a start up. I think learning it in a commercial vs. academic setting made a lot of difference to the speed of progress (of course, there are other factors to consider like passion, intelligence, etc).
Of course, even as someone with a legal background, there were many techniques I used in law that transferred. Mostly, problem solving and semantic reasoning. Did I pick up these skills while a law student or in practice? Probably in practice. Did I need to spend 3 years in university brushing the surface of numerous disciplines? Don't think so. As is often said, a little knowledge is dangerous.
That's why for me, university should be about learning fundamentals - broad building blocks that one can use across the whole spectrum (ideally). This is why I mentioned things like algorithms and mathematics - because I realise these are the foundations of computer science be it computer engineering, programming, or whatever. Learning deeply, and learning about other disciplines (like how I came to be interested in web development), I think is really up to the individual's intellectual curiosity. If a person is not intellectually curious, you can force him into any number of modules at university, but the fool will still come out a fool.
Now some people will probably say, if you already know how to take a web app from scratch to production, you're fine and you don't need a degree since I think most things are better learned on the job. But I have to qualify that by saying I think some things - particularly more theoretical ones - are best learned academically, to force you into having a strong foundation. Otherwise, one tends to simply adopt a method that 'works' - but not necessarily the best method.
I suppose you could say my desire to attend an undergrad CS course is not so much about getting a certificate. It's really similar to the concept of min/maxing in MMOs. It may make only a 10 or 15% difference to my overall skill as a developer, but I don't care - because you NEED that 10% to 15% if you want to be at the top of the pile. If you want to be run of the mill, you don't need much - but who cares about run of the mill right?
So coming back to the point at hand, and in summary, I think we can say...I agree there are no 'useless' modules in an undergrad course per se, but I do definitely think the time spent there can be more efficiently and effectively allocated to learning methods more effective for a given individual - particularly people who learn better while doing rather than theorising. I suppose it's a matter of different strokes, different folks. Some learn better observing and reading, some learn better by doing.