Conceptually, staging is getting rid of hardware we no longer need. Keeping useless hardware attached to the rocket is expensive, since added mass reduces acceleration.
Ideally, we would want to get rid of hardware as soon as it gets useless, instead of piling it up to a "batch", which is essentially what the question boils down to.
Rockets are very simple*, so a stage is essentially just:
- A propellant tank
Around 90% of the mass is propellant. Spent propellant is naturally discarded immediately in a rocket, so this is a continuous process. Most of the mass in a rocket is subject to continuous staging already.
Propellant tanks are a different matter. They have a natural batch size, the size of the tank. Discarding a tank before it's completely empty also discards the remaining propellant. The only way to get around this is by using multiple small tanks instead of one big tank, but since tanks are subject to the square–cube law, that would mean more mass in the tankage. There may be some trade-off there, but ultimately the increased complexity leaves it undesirable for launchers.
Finally, the engines. Rocket engines typically run at full throttle, and even throttleable engines aren't usually very adjustable. That's because a higher acceleration is an advantage for not wasting fuel fighting gravity. There's therefore no continuous discarding of them (and even if we throttle engines, they don't get lighter when the thrust goes down).
So we want to keep the engines running at max, until their mass is no longer worth it. That's a cutoff point, where we should get rid of them entirely. Design follows that. If these engines are discarded, they will no longer need propellant, so the tanks should only contain enough propellant up to this point. With no more propellant and useful engines, the package of empty tank + engines can be discarded simultaneously, as what's familiar as a "stage".
(n > 3 definitely happens. See for example Juno I, or N1)