I can't come up with a good name, so... who cares.
So...
LayeredFS -- hooking the game's code
* Probably easier to implement
* Limited to replacing/adding files
* Might cause problems with ASM hacks in games
* Requires users to decrypt their game's ExeFS and rebuild the LayeredFS plugin for each different game. Although this could probably be automated (plugin auto-patching the game's code before the game runs, or someshit).
* More straightforward -- the hook comes into play when the game says "I want file X" so you already have the filename
My method -- hooking Process9
* Less straightforward -- the game will translate filenames to file offsets, and then the hook will translate file offsets back to filenames
* Probably harder to implement
* Limited memory; there isn't enough free memory to store a RomFS file table
* More possibilities, like patching the game's code (ASM hacks) or redirecting saves
* Once it's done, it should work for all the games that embed a standard RomFS filesystem
* Doesn't require decrypting ExeFS's -- ROM hackers will still need to get the game's files, but people who just want to try a hack they downloaded just have to place the provided files on the SD card and play (although it may also be the case with LayeredFS if the hack is provided with a precompiled plugin)
* Hooking Process9 is definitely cool!
As far as speed goes, they should be the same.