Is there a standard procedure for refunding Bitcoin transactions?
As of right now, there is not a standard way to return other than to ask the returnee for an address to which the returner can send. You could ask for them to verify the address by signing some text with its private key, however, users of web wallets are at a disadvantage because not all wallets provide this functionality.

It is too onerous to ask for a return address at the time of sale, because a conscientious user would have to create a new address for each sale's return address. Managing these would grow difficult over time.

Issuing store credit with the option to cash it out via a variety of methods is probably worth consideration, as it prioritizes consumer choice. If I'm ordering from a company from which I order frequently (e.g. Amazon) or I know that I'm going to reorder later, I'll take the store credit and save the management time. Otherwise, I'll cash out the bitcoin and find another vendor who can meet my needs.

Update 21 Feb 2014: Bitpay announced today that Bitpay is now supporting BIP70-73 payment protocol, which includes refund addresses.