As for the spaghetti code example, there's definitely more going on there than I implied, but my point was that having an extremely solid grounding in algorithms and theory can be a huge asset, assuming the student has actually taken the lessons to heart. For example, I have spotted bugs and inefficient algorithms before just by looking at code or even hearing a description of what it is supposed to do that colleagues with less "theory" knowledge have missed.
Of course YMMV, there is no silver bullet. My point was just that a broad knowledge of theory isn't useless, but it also isn't necessary for everyone to have. We end up in the best place when every person gets the education that best suits what s/he wants to do, and having enough information up-front to make that happen is critical.