I think I'd better stop making trying to make my point now, it apparently is not being understood.
From wikipedia:
Computer science (or computing science) is the study and the science of the theoretical foundations of information and computation and their implementation and application in computer systems.
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
--
I think you are talking about software engineers and everyone else is defending computer scientists.
Complexity theory isn't hand-wavey-ultra-complicated-irrelevant CS; it's first / second semester stuff. It's fundamental enough that it's a cognate for most lots of physics, math and engineering students. That's to say, that it's relevant enough that if you're even doing something moderately related to computer science that it's worth knowing.
Are there a lot of jobs where you don't need to know this stuff? Well, I think there are a lot of jobs where you can get by without knowing basic CS, but it'd still benefit you from time to time to be able to apply these sorts of abstractions.
"Why is this function so slow?"
"Its runtime is quadratic."
"Huh?"
In my particular case, not knowing fundamentals of CS theory would cut me out of being able to work on precisely the problems that I find most interesting in programming.
I'm not saying that computer science is all day P vs NP philosophy. I'm just saying that you have to know complexity and algorithm theory to work in the field just as you have to understand the hardware, you might get by most of the time without it but when you don't, if you don't even know where to start, you'll have a mountain to climb rather than a little tree.
* However your remark about how this should be abstracted away and people shouldn't have to know it in the same way people don't have to know assembler now, that's not the same thing at all.