There are multiple reasons:
- A transaction is only 100% guaranteed, regardless of what any sequencer will do in the future, once it is written to L1. So batch frequency is a trade off between speed and cost. This is not a major consideration yet, but it will be once we decentralize.
- Clients drop transactions above a certain size from the mempool.
- Transactions have to fit in the gas limits for the block. The maximum gas limit is post EIP-1559 is 30,000,000. The average calldata byte costs 15.95 gas (4 gas if the byte is zero, 16 otherwise). So the theoretical maximum size is about 1.8 MB.