(Normally at this point I'm supposed to mention bitcoin's embedded programmable contract system that further facilitates escrow, but I'm worried that bringing it up at the same level would encourage the very same apples-to-oranges comparison I'm trying to get people to stop making!)
Of course, we don't live in the perfect world, and all non-trivial software has bugs. Time will tell if "perfect enough" plumbing is achievable, and whether the Bitcoin experiment is sustainable. I think's a worthwhile gamble, on a micro and macro scale, but no one should get involved with Bitcoin without understanding the risks.
Smart contracts probably make more sense for pure digital transactions that don't involve tangible goods or services.
That is, far and away, the best description of the problem I've heard. Did you come up with it?
I'd been considering rocketry analogies, where one software error (Ariane) or bad seal (Challenger) will blow the whole thing up, but I wanted to convey leakiness. Mtgox found a slow puncture and went down like a deflated bouncy castle.
Bitcoin has no dispute resolution at all. Once a transaction is confirmed, that's it; you have to use some mechanism outside the system to get your money back. People talk about escrow but it's hardly a magic solution.
A corollary of this is that all software handling bitcoin has to be extremely reliable. Not just the client, but anything built on it, such as the entirety of the exchange. Like a pressurised container full of money; if there is any crack or way a hole can be made, it bursts and the money is gone. Even if all the software you've built is fine, any operating system level 0day (cought Apple) will sink you.