I agree that the best programmer balances, but you just can't use templates in C, or smart pointers, or inheritance, and C doesn't have a standard supporting modern concepts like threading or regexes. It is always a tradeoff, but the fact that one of the best programmers wants to use C, where doing math on an aribtrary numeric value requires either 10 or 12 depending on platform functions or type coercion that creates unexpected behavior is bad because it is painful.
Also you seem to be setting your expectations too high for a C++ programmer. Every Java, C#, Python, etc -basically, every other language, is already doing virtual function calls in their loops. They create garbage objects all the time. Just because C++ focuses on performance doesn't mean that because performance is hard the average C++ developer is a retard while other language devs are geniuses. I bet 90% of Java developers don't even understand how virtual functions work because it is always on in their language of choice.
If I was writing something low level myself, I would always use C++ because it provides me much more productivity, clarity in code (if I write it properly and don't hack everything together with compiler exploits) and access to paradigms C can't emulate cleanly (OO at the least, but C++ lambdas do functional ok, I'd argue that without pure function enforcement it is lacking, but that is tangential) . If I was working with a development team of competant peers, I would still love C++ because their code will make more sense if they write in the feature set of C++ that promotes clean design and development. But if I was walking into complete strangers? Using C++ is insane, because it has a bottomless pit around every corner to snare a project and has glyphic compiler and runtime errors because the language itself is so hackneyed.