Simple Answer: Unlimited and Many
Ofc, every system can only reserve a certain amount of real address space for cartridges, but then there is Bank Switching. Just take the original Atari 2600. Address space for ROM was 4 KiB, and many early games only used 2 KiB ROMs. But already in 1982 Burger Time came in a cartridge with 16 KiB ROM and some sort of bank switching. That's already more than the whole address space of the 6507 (8 KiB). Later even 32 and 64 KiB cartridges have been made.
After all it's the same as with every memory expansion. The Apple II only offered 12 KiB of deselectable ROM address space for expansion, but already Woz' language card filled these 12 KiB address range with 16 KiB of RAM. Saturn & Co later on squeezed several Megabytes in.
These are the same techniques used in later games to get squeeze large amounts of game data into a linited address space. Usually the logic to enable the switching was part of the cartridge. As Chenmunka already mentioned, some systems, like the BBC, Memotech MTX, Exidy Sorcerer and other 8 bit machines already included mechanics, or at least protocols to handle expansions larger than the provided address space (window) in their basic design. Many of them enabeling RAM or ROM in the megabyte range.