The mechanical engineers I know did have to learn quite a lot of physics. That doesn't mean a physicist could easily do their job, because they'd lack the domain experience and wouldn't know the best practices. But on the other hand, you also shouldn't hire someone who has no grasp of the underlying physics to do some novel design where rules of thumb don't cut it.
To transport the analogy back into software engineering: Someone who has only done theoretical computer science is probably not going to write the best code right off the bat. But you also shouldn't put someone who has no grasp of the underlying theory to work on scalable, fault-tolerant distributed systems, constraint solvers, or any number of other problems that had a lot of theoretical consideration put into them before someone came up with the current best algorithms.
Just like mechanical engineers need to know some physics, software engineers should know enough theory to have an idea of where to look for a solution to their problem.