A usual disclaimer from the start: apologies if this has been posted before, though I don't think I have seen this particular idea around.
The core idea: technically allow unlimited army stacking, but implement a penalty if the unit count exceeds the maximum allow for a given tile.
An important practical consideration is whether the AI would be able to handle such a system. This I don't know. I would say it does not sound like an overly complex system, but it does involve additional trade-offs to be programmed around exceeding tile limits occasionally or not, which tiles to use, how to compose stacks for maximum efficiency.
The core idea: technically allow unlimited army stacking, but implement a penalty if the unit count exceeds the maximum allow for a given tile.
- As a basis, the maximum per tile could be determined by the food yield plus one. So, an unimproved desert tile allows one unit without penalty, an unimproved grassland tile allows 3 and so on. It would apply to own as well as enemy tiles.
- These limits could be influenced by technology and policies. It is also thinkable to introduce dedicated supply units that allow you to field more units.
- If you have more units in your stack than allowed by the tile limit, then all units start taking damage, say 5% of full combat value per turn per unit over he limit.
- Within such a system I would favour a range of one for most ranged units (they could still attack without taking damage and be protected by melee units in the same tile) and potentially some form of collateral damage by certain units types like siege weapons, i.e. all units in the tile take some damage from attacks of specialist anti-stack units.
An important practical consideration is whether the AI would be able to handle such a system. This I don't know. I would say it does not sound like an overly complex system, but it does involve additional trade-offs to be programmed around exceeding tile limits occasionally or not, which tiles to use, how to compose stacks for maximum efficiency.