The only problem with this is some almost no wallets support selecting an output address. If you do this, you might put a warning, "Make sure that you are sending from the Sending Address you filled out in the checkout process or we won't be able to associate your payment with your order." get ready for confused users, invalid entries, and making it impossible for users of most exchanges and clients to ever purchase anything.
This is very bad advice. First I fixed your post.
The two most common "clients" The satoshi client and MtGox exchange (yes a lot of users use it as a wallet) don't support this.
Second this is not standard bitcoin "protocol" (I don't mean technical protocol I mean how users have been conditioned it works). So you likely are going to get a huge number of wrong entries. User is confused and contacts support, user is confused and enters a random address from his wallet, user is confused and clicks new address and enters that, user is confused and puts the MtGox deposit address, user is confused and puts his instawallet address (funds will come from another address).
The Bitcoin protocol wasn't designed to work that way. For every valid traceable order the merchant is going to end up with multiple invalid, or unverifiable orders. There are existing solutions. Trying to make up a poorly implemented one is just going to end badly.