I have an idea on a software application for paying someone cash for Bitcoins.
The scenario would be, you both open up your exchange app, you both authorize the exchange of the same amount. The application starts transferring Bitcoin for cash in the smallest increments possible (ie a penny at a time). If at any time in the transaction a penny is sent and the equivalent BTC is not paid, the transaction is terminated. So the most you could lose during a transaction with someone is a penny.
The cash exchange part could be made up of many different cash transferring medium such as Dwolla, etc. The key being that money transferred between users is not charged on a per-transaction basis (otherwise it is a non-starter).
What do you think? Could this work? Am I missing something?