The reason there aren't any useable p2p exchanges yet is because they introduce problems that nobody has yet solved.
There are two models that I have come up with:
1. p2p exchange/marketplace using a DHT as the 'market database' - think bittorrent, but instead of peers swapping files, all they swap/propagate to other connected peers is the database of what's for sale. This db would include, for example, seller, product, price, contact info etc.
2. Use Masternodes or some other server network to host the database, distributed and kept current between Masternodes, and have a separate client to access them. Think usenet, but again, it's not a million different files that need hosting, just the one current database.
Either way, it's fairly easy to have the whole thing end to end encrypted, and limit user access via keys that for example a seller might need to grant you to view their wares and buy from them.
There are other problems though with both approaches.
In both cases, I have yet to come up with a bulletproof way of preventing spam and deliberate market corruption, this is particularly true of #1. You need a mechanism to prevent peers from flooding the marketplace/exchange (I use the terms interchangeably, because they are at root the same thing - a means of connecting buyers and sellers) with garbage.
One approach would be to charge for access - difficult to do with #1, another would be a reputation system that limited injections according to a scale based on past behaviour and feedback from other peers - still not exactly rock solid.
Approach #2, even with IP obfuscation of the hosts, leaves server ops potentially liable for content they host, and is less truly 'p2peery' - but then usenet existed before the www, and usenet will exist after the
www...
However #2 also makes spam control far simpler, as there would exist a distributed 'authority' to cull garbage.
Another thing that users are going to have to get used to is that p2p trading is going to require a bit more effort on their part. Buyers and sellers are going to have to liase with each other, and arbiters if required, there is no automated way of doing this that maintains perfect market freedom and does not lead to restriction of trade through centralised services. Such is the price you pay for not having a 3rd party do everything for you, including run off with your money.
p2p markets would also hopefully deal with the problem that plagues current centralised exchanges - idiots leaving their money on the exchange which makes it trivial for exchange owners to game the market with that money via bots, or simply steal it. The current concept most people have of an exchange order book may need to be revised, but IMO this is a good thing.
The arbitration thing is easy, just have an arbiter market offering multisig escrow in whatever currency the arbiter is competent to do it in. Bitcoin and Darkcoin work exactly the same way here, if you have a tool to do one, a simple find/replace bitcoind/darkcoind in the code will get you the other. I could put a radio button and corresponding variable in one of my simple tools to select which in a few minutes. I imagine bitcoinj/darkcoinj are the same story, if you're using that as a back end.
Heh, I could go on for hours, but I need my morning coffee. Just thought I'd throw some thoughts out there.