I disagree strongly with your point #1. "This knowledge" specifically is deep full-system understanding, as quoted in the article:
> "They use languages, editors, compilers, and operating systems; but they don't have the first clue about how to create any of these things or even how they really work."
And yes, he is asserting that people should get this from a degree:
> If you want to build doghouses, just pick up some skills with hammer and nails, and then go for it. If you want to be an architect who designs and builds skyscrapers, then go get a degree in architecture first.
The full depth of applied understanding comes from personal interest & experience. Whether or not a person with such interest pursues a CS degree is completely orthogonal.
Plus, these applied low- & mid-level computational practicals have nothing to do with Computer Science; they are programming, architecture, and engineering. People generally do not complete CS degrees with any specific imparting of these 3 facets, unless they use their university time to pursue their own interests & ambitions in the field. And again, such people can and do pursue those outside of university, especially in their pre-university age exploratory years, and on-the-job experience with real systems.