I think one issue is that most people never encounter a truly expert programmer, and when they do, they don't know what they are seeing. Many modern frameworks are built on and almost force programmers into bad patterns, because the experts that built them thought the fundamentals were for losers. Developers look at that and think it's expertise, ignoring the people plugging away building good, solid software in an unglamorous way. It's actually really difficult to build solid software on a framework that tries to force you into antipatterns.
OTOH, I'm not sure how often it truly matters for developers to understand the mechanics of an http-request, any more than we need to understand how the computers put a variable into a block of memory addresses (beyond the difference between passing by reference vs passing by value).
I thought your insights into building a culture of true expertise were great.