You've mentioned that the sellers maybe put at a disadvantage here because the buyer may not sign the transaction, well, there are many tried and tested sites where this type of system works. Such as; localbitcoins, bitmit, coingig or even all those .onion sites - but these sites require you to fully trust them, as they expect the coins to be deposited in their wallet and the buyer presses a "release button", as opposed to a multisig address, where no single person can steal them or claim they've been hacked, etc etc..
Exactly: here we are trying to avoid the need for trusted third parties policing the transactions. And often they rely on a separate trust metrics for assessing the participants: for example, Bitcoin.de has a system of mutual ratings among users based on the number of successful settlements, and each user's rating is visible to all other users. But this requires a centralized database and someone to maintain it, and we don't want that.
However (please correct me if I'm wrong), I guess it's possible to make a transaction that will pay part of the amount sent to the script hash to one address (the Seller) and part to another (the Buyer). If the Buyer reneged on his agreement and refused to sign and broadcast the transaction after receiving the goods, he would have to forfeit the bond.
there are a number of ways you could arrange a multisig contract to address what you call bond forfeiture. Just to be sure, in its basic form, if the multisig address requires more signatures than are available to sign the tx, then funds will remain locked, yes. So there is extra burden on all parties to be sure keys are safe & available on time.... or, depending on the details & complexity of agreement - additional signer keys could be used, shared, split or other tricks to build in failsafes.
here is an example of an exchange implementation using Outkast's multisig [thanks again - much fun]
http://isx.io
your question 'is it possible to implement this protocol with p2sh primitives?" - p2sh could be html javascripted just like this one if thats what you mean.
See also:
https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0017.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0012.mediawiki
http://bitcoin.stackexchange.com/questions/2749/what-is-an-explanation-of-the-p2sh-voting-in-laymans-terms