You can just as well configure your hardware in config.txt. Is there anything to be gained by eeprom configuration, other than if your carrier board replicates the 40-pin header?
I anticipate having more than one type of carrier boards with different hardware on them. I also want to have a single OS image that can properly configure itself to whichever of my carrier boards it runs on (so that I don't have to maintain separate OS images that are mostly identical).
If overloading the Hat functionality doesn't work out, my fallback will be to do the hardware configuration post-bootloader early in the startup via a custom systemd service or something.