As someone who works in R&D at a computer manufacturer, studied computer science at school, and actually gets paid to code I can assure you it is because you need to. Academia's obligation is to produce thinkers. That's why the highest degree they offer is titled as "Philosopher". Requiring students to take physics, chemistry, and math beyond what's required for their major coursework will expose students to problem solving skills they wouldn't develop via their major coursework alone. And further more, programming is not independent of the hardware. You don't have relevant skills if you claim you "know programming language X" but don't know what effect is has on the machine at the assembler, linker, and architecture level. And an primary understanding of electromagnetism and circuits is the required base for this. Those who fall into this category don't know ****, just syntax.
So what can you contribute vocationally without exposure to your mentioned fields? Perhaps you'll be cataloging to world's data at Facebook or Google and won't be using any discrete math? Will Dell hire a Thermal Test Engineer who has no clue about thermodynamics? I wonder which Firmware Test Engineer's don't know Ohm's Law from the Pythagorean Theorem. If you get A+ certification and become a PC repair tech you won't have to take those classes, but you will still have to think and know a little about Physics.