Merchants don't need to insist on a fee. But merchants will insist on a confirmation.
The solution is to have a fee of about $1-5 per transaction. Thus about 0.01 at todays rate. You want to get all the bastards like satoshi dice from spamming the chain. What you do is you have 3-4 major exchanges acting as wallets for petty cash. You would need no confirmation and pay like 0.5% fee to them for every transaction. Thus you put a bitcoin on the exchange for .01 fee thus you have $200 in value on there. From there you just buy and sell and the exchange get a small amount of additional revenue. If the site goes broke or skips town you lose your $100. However, they have the incentive to stay with their fee.
These exchanges could even use a common wallet thus everyone would be using the same wallet. Sort of like cirrus networks. Everything would be full reserve so you would not have to be worried about them using your money for loans to losers. This main wallet would only have an extremely small amount of bitcoin there and would be sent as needed to fill the needs of merchants that want to cash out into real bitcoin. This is actually already being done today in many ways.
Higher fees is the solution not the problem. If you buy a $20,000 car or house, a $5 fee is not a problem. You might even want to use a wallet for that for a paper trail and proof you paid.