long story short, dumping a rom isn't as easy as it sounds..... it's very hard to get a clean dump with uncorrupted data. Sometimes the devs don't realize that a portion of the rom is corrupted until they are done emulating the game and realize that the "error" is a fault of the data.
Also sometimes it's hard ot get a re-dump, and thus it takes a while before a rom can be fixed.
Put that on top of name re-standardizations, empty data clipping, and data encryption/decryption and it becomes quite obvious why roms change over time.