"But if you are talking about software developers creating applications at a higher level, then a lot of them don’t have a clue about the “nitty gritty” details of programming a microcontroller at the lowest levels and interfacing with real-world input and output devices"
Very sad, but true. While the high level tools available today have the ability to leverage productivity, the isolation from the "iron" (silicon) is creating a huge work force that rarely even bothers to ask, "but does this approach execute efficiently"!
I have always maintained that any programmer worth his salary should be able to describe the assembly language instructions an optimizing compiler will generate for a given block of code. That doesn't mean he has to understand all the details or be able to write it himself but if he has never done cc -a -t he is clueless to what he is really doing