>>10
Some compilers are very good, but don't underestimate human compilers, they can produce fairly decent code too if they know the CPU architecture and instruction set good enough. You know that producing 'the best' optimizing compiler is at least an NP complete problem, so you can almost always find better optimizations. Of course, few compilers produce good quality code anyway, most produce just average quality code.
P.S.: I'm not advocating people code anything in ASM, except for:
1) parts of a compiler's code generation and standard library
2) Platform specific code (such as those used in OS'es, some device drivers and so on)
3) Programs which require very high performance, such as media encoders or password/crypto crackers and other similar things.
For most other applications, not using a high-level language is mostly a waste of time.