My understanding is that much of the progress in economics has been merging economics with psychology to identify rational failures.
So in microeconomics or small models, people can practically accept and implement these (pretty obviously true) ideas that people don't behave rationally. But in large scale macroeconomic models it's hard to do. It would certainly be a lot easier if people just acted like computers...
It's like the law of large numbers; while a single transaction may have a completely wrong price, a sufficiently large number will average the irrationalities out.
The truth is not so - people get irrationally exuberant or are afraid to cut their losses, etc. These are problems of statistical bias of their estimations - and the opposite is assumed in many (most?) economic models.
http://en.wikipedia.org/wiki/Sticky_wages
http://econlog.econlib.org/archives/2013/09/why_dont_wages.h...
More importantly, they're a huge waste of resources that produces nothing of economic value.
He doesn't actually claim the markets have perfect information, just that the price always reflects all available information. In essence, you can't "beat the market" consistently, assuming you have the same information.
Which you don't, since Goldman Sachs is always a few milliseconds ahead of everyone else. Given that almost everyone else out there is going to be trading on information that has already been consumed and acted upon by privileged parties, the markets may as well for all intents and purposes be irrational.
That depends which recent Nobel Memorial Prize winner you believe.