While having something able to be reassembled from an automated or minor guided (as opposed to meticulously hand finished) disassembly is a nice thing to have is it really something so shocking to not have? Any time you get essentially random and mixed data, opcodes and padding you are going to have some fun decoding what is what, and that pretty much kicks the idea that you can disassemble and then reassemble that later in the head not entirely unlike how if you open something in a text editor that ignores most things lower than 20h and above 7Fh.
Most hacks, assuming they are not single instruction/in place tweaks of existing stuff, are usually also implemented as essentially a standalone subroutine as well branching/jumping off from the original and then returning to a choice place afterwards.
Anybody big enough and ugly enough to contemplate a full ROM disassembly for a project then probably being able to order it, presumably into banks (it is how the chips on the cart might be arranged, certainly were on older devices still but I will skip that as talk of interleaving is likely to see something thrown at me or someone start rocking in the corner, how the code will typically be viewed from an execution standpoint, jumping into another bank as a hacker is doable but the sort of thing typically reserved for a "no other alternatives" scenario and so on) and probably one more step to reflect the mapper it was (or maybe will be if someone is doing a mapper change while they are at it).
By all means try and you could probably get quite far with something a bit probabilistic and maybe have some runtime input from fceux or something that notes all executed locations (while the probability thing is likely to go pretty far into the "smart" world I would say a fceux log might be quite nice actually on most NES ROMs are fairly straight shot when all is said and done).