Thanks for that post, I didn't realize exchanging IOUs was possible. Now things get complicated and I have to think.

Say I exchange my USD.Bitstamp for USD.Foobit. Now the appropriate balances on my Ripple account and the Ripple accounts of my counterparties have changed. How do Bitstamp and Foobit reflect this on their account balances? I assume they would be saying I own 1 USD.Foobit and 0 USD.Bitstamp. Then, I go to Bitstamp and send my USD.Bitstamp from my Ripple address to theirs and they update my balance to 1 USD.Bitstamp.
For this system to work, the balances at Gateways need to be linked to the balances on Ripple, and the sync time must be smaller than the time it takes to make a withdrawal from the exchange interface, or otherwise they lose money. Is that the case with Bitstamp today?