Even if a cup of coffee costs 3.12345 mBTC, that's a lot more annoying than 3123.45 uBTC.

This is subjective though. To me the first price looks like the price of a cup of coffee (or I just mentally double it). The second looks like the price of an expensive holiday.

If users really find this so terrible, merchants have a simple solution: do the rounding before presenting the price. Then the price looks like "3.12 mBTC" which is sort of what I'd expect it to look like. But some wallets already make digits >2dp smaller so visually you can get precision whilst still looking similar to what you might expect (this is what Bitcoin Wallet does).
 
I haven't seen a single good argument for keeping it in mBTC (other than some people already did it).

That's the good argument!