Customers generally don't know what address their coins will be coming from.
Ok, then this is where my understanding of Bitcoin has a hole in it.
When you download your wallet you get an address. You use that address to tell people where to send money to get it to you.
Does that address not correspond to what you then send to someone else?
unfortunately it does not.
The main client, for example, creates a brand new bitcoin address for you anytime there is "change" from a transaction that you send. the user has no control over this. And there's little control over what address the funds get sent from.
Instawallet tried to do what you are saying, and it does work on a small scale. But its not something that can be relied on. That's why they created the "green address" last year so that transactions could be sent from a generic address that all instawallet users could share, and external wallets would be able to identify them as coming from an instawallet user.