So I think the OP's question was why there aren't decentralized exchanges. I took that to mean why there aren't P2P style exchanges. I'm not sure what the answer is. I think people have been tossing that idea around for a while but I'm not sure if they have started code for it. There are many exchanges now, but for some reason people choose to use MtGox, which is AWFUL.
This model leads to failure. Each exchange would have a small order book which would discourage anyone from using it, ensuring that liquidity never reaches critical mass. Small exchanges cannot afford security audits so they are guaranteed to be hacked. Small exchanges also cannot afford FinCEN compliance, so if they touch USD then they're illegal.
I think the first credible implementation that doesn't have any major red flags in terms of trustworthiness or being run by amateurs will quickly siphon off volume from Gox.
I don't think buttercoin vs any of the existing exchanges has any proper analogy that would match your git/mercurial vs svn example. The only diff between buttercoin and those is that it will be open source. It doesn't actually decentralize. You might even see MtGox take buttercoin and use that to run their exchange.
Because its pretty hard to define even what "decentralized currency exchange" means, and, particularly, to identify a mechanism by which you could do order matching in such a system so that wouldn't leave you with just a bunch of disconnected exchanges that are far less efficient at market clearing than a centralized exchange.