The QL memory map reserves (interestingly, much like the IBM PC) address space above $C0000 for I/O cards with 16k per slot. How this address space is used by the card (registers, ROM,...) is up to the card. QDOS will, on startup, scan the ROM port address ($C000) and the base addresses of each of these slot's for ROM header signatures. If it finds one, it will (if you're not using a buggy QDOS version) link in the S*BASIC functions in the ROM and call the initialization routine. The Technical Guide somewhat implies that no single card (except RAM cards) can use more than 16k of address space (So, a 32kB ROM on an expansion board would somewhat conflict with that implication, but probably still work. I doubt, however, that such a card was ever made). As most hardware add-on-cards would need at least some I/O registers with in their 16k address space, it's likely a full 16k ROM was never implemented on expansion cards.
There is reserved space for a pure ROM add-on card at the top 128k of the address space.
Whever is interested in how this was originally intended to work, should consult chapter 11 of the QL Technical Guide.
The Miracle TrumpCard, of course ignored all this, didn't use a dedicated I/O space (but rather overlaid its registers in the motherboard I/O space) and filled everything else with RAM
