With that sense, they should write everything in Assembly, since if they put in maximum effort, no automatized tool (compiler) can beat its performance. There's a reason why programming in general is going into a less hardware-specifics dependent direction if you look at a long enough time-frame.
Just because some of the programming that you are doing is less hardware specific, doesn't mean programming in general is doing anything. A lot of people still write very hardware specific code in C and C++ (and sometimes even in Java and C#), and a lot of people write very abstract non-hardware-specific-at-all code in C and C++.
Also there really aren't many people who can beat a compiler at writing assembly. Usually it's better to optimise your algorithm, not least because perfectly optimal assembly on my processor will not be optimal on your slightly different processor and vice-versa.
Also compiling C# is not any faster or slower than compiling C++ code if you do it right. In fact, using precompiled headers can make compiling large programs in C++ substantially faster than compiling similarly sized programs in C#. The thing that really slows C++ down is the optimisations, which are pretty much ignored by the C# compiler on the basis that "the JIT will do it" (it doesn't - the JIT cares more about getting the code onto the processor quickly than making it go quickly when it gets there a few seconds from now).