The sad truth of it is many of the grads for the last 15 years are junk [...] the curriculums now create people who think that the compiler, the runtime, and the OS are a black box.
Funny. I got my degree 10 years ago, and CS majors had required coursework in each of those fields. The curriculum even included subjects which would more appropriately be considered electrical engineering -- one project was to build an entire RISC CPU in modeling software, starting at the level of individual NAND gates and building up from there. I can't claim my experience was representative of every graduate in the past 15 years, but neither would I claim none of us have sufficient understanding of computer internals.
And what's wrong with that? 95% of the programming work that needs to be done IS writing reports for accounting. That 0.1% of the time where a new comm protocol needs to be developed, there's still some gee-whiz developer-savant capable of the task, and he's as likely to be a young college dropout as a grizzle-bearded oldbie.