>There is no way a compiler can come close a good asm coder until>the day computers are able to think for themselfs the way humans do.

OTOH an asm coder can only produce code as good as he understands the
hardware. This was easy in the good old days, where counting clock
cycles was the definite measure for the execution time of the
code. But nowadays an asm coder has not only to understand, but he
also has to track, the dynamic behaviour of the hardware like cache
contents and flushes, parallel processing units and dispatch
strategies, branch prediction, register renaming etc., and all that
with every single instruction and argument added or modified in his
code.

I'd like to rephrase your statement:

There is no way an asm coder can come close a compiler until
the human coder thinks like computers work.

[sarcasm on]
Your thesis about the quality of asm code is valid to the degree of
the coder's understanding of the target machine. At the same time it
proves that your knowledge about computers is restricted to legacy
systems, not worth to mention any more. So what?

The prediction of the execution of some code ressembles a weather
forecast. The asm coder uses the "Esel Barometer" (donkey barometer):
tail moves - windy, tail wet - rainy, tail invisible - foggy, tail
stiff - freezing. Such deductions are valid almost all the time, but
what about the next minute?

[sarcasm off, OT on]

Neither human thinking nor modern computer operation happens in
sequential asm, it's happening in neuronal networks, fuzzy logic, and
in parallel. We are closer to the days when a computer works in a
human-like way, than to the day that somebody will understand how such
thinking works. And once we really know /how/ humans think, we'll most
probably see that we cannot predict /what/ we think. With "thinking"
computers there is no more need for coders at all, we only have tell
them what we want them to do for us, and leave the rest to the
system. Oh holy software patents and poor coders - beware of such a
horrible future!