I fear the only soulution to the "committing orders" would be through extending the bitcoin scripting language.
You could sign and broadcast partially completed transactions as "binding advertisements" like
"I send 1 shatoshi (share) to $BUYER_PUT_YOUR_ADDRESS_HERE if this transaction also satisfies 4.33 btc to addressC "
This also removes the need for secrets to achieve atomicity but would probably need an expiry condition too.
The difficult part is how to retract orders. When I put an order I don't want it to stand forever, I want either to be able to retract it (which is difficulty to synchronize and probably won't be supported), or to set in advance a time limit. So you need to have a transaction like you described, but which is only accepted if completed up to a given time. And it needs to be able to be completed even without the issuer's cooperation. And the proof that it was indeed executed before expiration needs to survive block reorgs. This seems challenging even if you design a new blockchain just for that.
That's the expiry condition I was talking about. To see if the trade has been executed both parties need to wait until they think no block reorgs can occur to be sure that the trade has been made or not. But they don't lose anything, being the trade atomic it is either executed or not as a whole.
But that's two extra features for standard transactions: "if there's also an output for X btc to AAA address within this transaction" and "if it is included in the chain before the block Exp".
I wonder if what fellowTraveller is coding for open transactions could be useful for this.
My latest project, which I will be announcing soon, is a full implementation of smart contracts, agnostic to scripting language, which will allow users to design their own financial instruments by adding scripted clauses to their contracts. If you are curious to see the progress, look at the github code for OT, there is a "smartcontracts" branch where I have been checking in commits every night (lately.) It's not done yet.
Maybe a single standard contract protocol should be developed for the whole ecosystem of "crypto-financial tools" (I'm thinking about bitcoin, OT and Ripple right now) to be adopted for all of them. But identifying use cases and reusable messages seems hard work, because you want to make it once and don't need to extend or change it significantly later.
Sorry for going a little off-topic.