The problem is Linux kernel always assumes that first TRX is "firmware" and second TRX is "failsafe". It's true only in 50% of cases which means many people may end up with not-booting firmware.
Having support for marking one TRX as "failsafe" was the first step.
Currently I'm working on cleaner TRX support, I sent
[PATCH V2 1/2] mtd: add support for partition parsers
[PATCH V2 2/2] mtd: extract TRX parser out of bcm47xxpart into a separated module
I've some idea how to make TRX firmware vs. failsafe detection work. I'll work on this once getting TRX cleanup (above patches) accepted.