Does bitcoin have enough resolution to replace all other currency?
The question is good (and has been asked before) but contains a misconception
No one buys rice a grain at a time

The granularity problem gets even worse since prices for mass produced items (like small electronics components) are often specified in units as small as 1/100 of a penny.

Sure, but you will never order just one 120 ohm 0402 SMD resistor from Mouser. You always have to respect the minimum order quantity. You never ask your bank teller to hand over a coin worth $0.00001 so that you can pay Mouser. Your credit card company or bank never has to track account balances to hundredths of a cent. The monetary system you use today also doesn't have currency units as small as that. It isn't a real-world problem. People can and do buy those 0402 SMD resistors using a currency system whose smallest unit isn't small enough to buy just one.
So this issue has no practical effect on the lowest denomination coin available in the currency. A one cent coin is a smaller amount than you'll ever need for any real-world transaction.

Satoshis may be too big?

If there are 7 billion people in the world then there are only 300,000 satoshis per person.

This is indisputable. However there are solutions.
MCCCS pointed out that the Lightning network can already be used for transactions smaller than a Satoshi.
The general view seems to be that the Bitcoin protocols, or related payment systems, can be adjusted in a timely manner to provide for higher resolution in advance of any requirement for it.