Using decimals beyond hundredths and mBTC uBTC makes it far too confusing the average user.
I think you are missing the point. The base unit can be changed so that you don't have to deal with too many decimals. If BTC gets to valuable, prices will likely be expressed in mBTC. If mBTC gets to valuable, prices will likely be expressed in uBTC. The final step would be Satoshis.
It is somewhat like that already in the real world. When I ask at the bakery for the price of a bread roll, they will not tell me that it is 0.30 EUR but they will say it is 30 Cents. It goes in the other direction as well. The car might cost 30371 EUR (and of course this is the displayed price) but for the sake of talking about cars and comparison people will say its "30 - thousand EUR" (some people even would write 30 TEUR or 30 kEUR).
The world has experienced inflation before. When even basic stuff like a bread roll had cost like 100000 WE (WE=whatever). What then often happens is that a new currency unit is created like NWE (New whatever) and for example it is declared that 100000 WE are equal to 1 NWE. And then people just use NWE and have adjusted the numbers of digits by that. And some time later NWE might even be renamed to WE again.
But we already have mBTC, uBTC and Satoshi. We just need to use it when appropriate. Only when already 1 Satoshi is too valuable for some transactions, there will be a problem with Bitcoins. Or probably somewhat earlier, because the smallest transaction fee is 1 Satoshi as well and you don't want to have like 50% transaction fee on your purchase.
I get what your saying and I didnt miss your point. The problem is that you will still have BTC. Its a lot easier to calculate whole numbers than into decimals. Its not like mBTC will now be the BTC, and nobody will use the old BTC value anymore. You will still have people trying to use BTC for large purchases and mBTC for smaller ones. Which is exactly how it works today.
The only way to fix the problem in my humble opinion is to split BTC like a stock.