They can be optional, and chained together in AND or OR combinations. A central catalogue knows the definitions of all ROMs.
At least for the purpose of being communicative. I doubt there's much to gain in terms of compiler output — the DiskImageHolder can avoid some virtual lookups but nothing else leaps out.