I would consider it helpful if there were more people in the industry who would know what a binary tree (or whatever comes to mind) is and when to use it. all means to get there are welcome as far as I'm concerned.
This l'art pour l'art accusation comes back once in a while, often in language bashing ("elitist lispers" I read some days ago). As a former musician I recognize it in the shape of "technique ruins your soul" or how one would like to phrase it.
I think that the dichotomy is just wrong. It's not detailed knowledge versus pragmatic solution. I spent a great amount of my time in environments where the "shipping it" dominated "understand what you are doing", and I also spent time with drummers who could not keep the time because practicing would ruin their soul. It's knowledge vs. ignorance.
What concerns software development: the essence you want to get back to smells to me like the vbscript world I was happy to turn my back to. I would like to see more capoeira, less hash-tables because they are built in.
To follow up on your analogy with martial arts: I practice fencing once in a while, a rather ritualized sport, (for some 100 years already): I would not like to inflict maximum controlled damage to my opponent, or the other way round: I'm not training to kill. You might call it a kata I'm working on.
Your point "it's not necessary to know all of them before..." I cannot argue with. I would think the same. But the inequality "written by a programmer who cares about knowing his craft" != "people don't want to use" follows not from that statement nor from any other point you are giving.