Does bitcoin have enough resolution to replace all other currency? Does bitcoin have enough resolution to replace all other currency?
Bitcoin is intended to be used globally, and ideally it would be used in place of government issued currencies.  For the purposes of this question lets assume that all transactions in the world will take place in bitcoins and that all governments and people have accepted it as legal tender.
There are 100 million satoshis per bitcoin and 21 million bitcoin.  That means the total wealth of all bitcoins can be divided into 2,100,000,000,000,000 units.
If there are 7 billion people in the world then there are only 300,000 satoshis per person.
If each satoshi ultimately became equivalent to say a penny, that means that we can only have $3000 per person, which seems sort of limiting.  If we make each satoshi something larger than a penny (like $3.00), then each individual could have up to $900,000 in wealth.  But then there would be granularity problems (like having to charge $3.00 minimum for any item no matter how small).
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.
Clearly there is a resolution problem that will only get worse over time.  To estimate the required resolution we can consider the following.

need to account for very small prices (as small as 1/100 of a penny), so 10,000 units per dollar
need to account for reasonable wealth (say $1,000,000 per person).  Not that I expect all people to have that much, but wealth is not evenly distributed, and we wouldn't want to be even close to hitting the cap.
need to account for population growth (say up to 20 billion)
need to account for lost coins (say at least half are lost over time).

$1,000,000 per person * 10,000 units per dollar * 20 billion people * 2 = 4E20 units needed.  This would require at least 69 bits.
4E20 / 2.1E15 = 190,476.
So it looks like the resolution of bitcoins smallest unit will ultimately need to be at least 200K smaller.
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.