The “How to have multiple CPU architectures without making life hell for anyone using the system” problem? Not all software can or should be in the curated system repo, and having multiple architectures without a universal binary format makes downloading software a nightmare.
I mean, MacOS has demonstrated this neatly on multiple transitions - even Halo was a Universal Binary, while on Linux issuing software as a binary means an ever expanding number of download options or mandating people install your custom repositories.
If “Haiku on RiscV/ARM/POWER” is a valid concept, then software intended for Haiku will already need to be compiled multiple times. Allowing those binaries to be packaged into a single “runs on anything” executable just makes it easier for software to actually be distributed once it’s compiled. Same for testing - if “non-AMD64 Haiku” is a valid concept, developers are still going to have to test for those systems; FatELF doesn’t change that - it just makes distributing the software afterward less hellish.
Larger executables? Sure - but in practice that’s never been a real issue. A 25GB game is not 24GB of compiled AMD64 code and 1GB of resources. This also wouldn’t apply to the base OS since that could (and should) be installed with only the target architecture. Plus FatELF on Linux can easily be extracted into ELF binaries for those hardcore space-tuners, just as people did with Tiger. I don’t see why this wouldn’t be just as possible on Haiku.
The real question is - how else do you solve this problem better?