Today Alex makes a point that I drill into my graduate students: The assumptions underlying the standard market efficiency theorems are sufficient conditions for market efficiency, not necessary ones. Dani Rodrik and the many econ textbooks that claim that market efficiency requires perfect competition, perfect information, no externalities, etc., are simply wrong.
The real story: Given these admittedly restrictive assumptions, market efficiency is guaranteed; if one of those assumptions are violated, market efficiency remains possible.
Yes, that means that markets with small numbers of firms, imperfect information, and externalities can work as well as markets with lots of firms, perfect information, and no externalities.
Examples abound: Bertrand oligopoly - and even contestable monopoly - show that industries with a small number of firms - or even one firm - can be efficient. A monopoly in an industries with negative externalities can be efficient. Large but infra-marginal externalities are consistent with efficiency. And don't get me started on imperfect information.