I think it hardly ever works in the sense of "makes for better and more cost-efficient information systems in the long term."
Over the years I've worked on several expensive IT contracts whose purpose was to bring failed outsourcing projects back in-house.
I'm just not interested in working on any problem domain where that's the best approach.
Isn't this like saying, "Thousands of satisfied customers can't be wrong?" Thousands of customers can be wrong. Thousands of companies can pay dearly for outsourced services that end up hurting their business.
It's more like saying "markets aren't always right, but they're useful, otherwise they wouldn't exist".
The efficient market hypothesis says "the market may be wrong sometimes, but you can't consistently tell when".
[1] http://en.wikipedia.org/wiki/Efficient-market_hypothesis