(hopeful as a satoshi=1 dollar)
Unless hyperinflation happens, that would be impossible. Assuming Bitcoin replaces fiat entirely, 1 satoshi = 1 cent would be the best case scenario.
It seems quite obvious that once mBTC is equal to a dollar bill in value, it will then become natural to discuss bitcoin amounts in mBTC rather than BTC...
...It can be argued that we should have already switched to mBTC by now, but I argue that it does not makes sense to do so until 1 mBTC equals $1. (Dollar because it is the world reserve currency)
As you yourself said, I believe it won't come until at least when mBTC = $1. It just wouldn't be logical.
But... There was a time in Bitcoin's history when 1 mBTC = $1 and people didn't switch to mBTC then. I still think it's a good idea however since the only alternative would be to use decimals with long chains of zeroes which would be rather unpleasant and cumbersome, not to mention error-prone.
That would need change in the bitcoin protocol, and all nodes would need to agree. Bitcoin network is something relatively big, so changing things is hard and always with risk of failure. Its almost the same as changing ipv4 to ipv6, something that needs to be done, but there is already a whole system working with the old standard, so its hard to do.
I can only see it happening together with many others major changes, or if BTC price reaches the six digits
It would only require a simple change in the user interface. You could have one wallet that shows balances in mBTC by default and another that shows balances in BTC by default.