As a merchant I want to provide good service. So I thought you guys might like it like this:
In case of reoccurring goods or services provides there may be sence to have a bitcoin associated with some spend. Call it an account. Whenever any BTC come to 1CDMAnsZfjWj9oFVZNUnKUYsA4vWpjztSY my cellphone gets refilled.
It may also happen that I as provider have unspent bitcoins of yours. Like you sent me 0.5 BTC, I refilled your phone with 4 USD and charged (moved out) 0.4588326 BTC for it and have 0.0411674 BTC spare. Now some merchant may just swallow it and 'round up' or something, some may will to return it to sender but I propose to reverse the chessboard:
The customer has a privkey from the address he sends money for the provider. Maybe he even generated the memorably firstbit address for convenience. Obviously the provider also can move out bitcoins from that adderss. Most naturally by sharing the knowledge of privkey or with multisig feature (which adds another dimension or interestingness).
That way customer remains in power I think.
It also simplifies things for customer allowing to think in round numbers in terms of refills, bringing human to its nature
Your ideas?