It should be noted that our current financial system has the exact same limitation: an international bank transfer (SWIFT) costs roughly $35, which makes it entirely unsuitable for consumer-to-merchant transactions. This is fixed by using credit instruments to clear payments going from consumers to merchants, such as is done by VISA, MasterCard etc.
A similar (VISA-like) clearing system can be deployed on top of Bitcoin, thus making it behave exactly as our current financial system does today. The lowest layer (Bitcoins on the blockchain/USD in a bank account) acts as the store of value, while protocols on top of this layer are used to make consumer payments sufficiently cheap.
My bank charges 20DKK (~$3) for a SEPA transaction. I'd be really interested if you could show me a Danish bank that offers free SEPA transfers.
As for dispute resolution, I think it would be appropriate for this to be a third protocol layer -- on top of VISA-style clearing. I see no reason the clearing layer should handle this as well (and incorporating it into the Bitcoin layer would be true insanity, in my opinion). Nor do I see a reason it should be difficult. Costly, perhaps, but it's a simple matter of finding a mutually trusted third party, who won't release funds to the merchant until the consumer has received the goods.
It's rare to see a crypto advocate admit that such a tradeoff exists!