Payment Protocol: Is using different addresses for refunds just because of privacy?
Some hosted wallets are using addresses in elaborate ways. So you cant be sure the address sending the payment is the one "owning" the bitcoins.

An example is CoinJar, that uses addresses to indicate to what account the funds should be added. But behind the curtain CoinJar does anything it feels is best, making the most efficient use of all its previous outputs.