That's similar to the idea used in a lot of emulators, especially some of the Nintendo 64 ones, except that they programmed those to look for specific patterns of opcodes that they could replace with higher-level C/C++ functions. Some of the emulators might only support 1 or 2 games, but get phenomenal speed emulating them.
Somewhat separate, but related, I remember one of the video plugins that would accept external images as replacements for in-game textures.
Anyhow, I agree that for at least some games, replacing parts of the code makes getting the game running with some degree of improvement easier than completely re-implementing it. On the other hand, I like the idea of reverse-engineering the original binary, and along with an engine re-implementation, providing documentation of how the game originally worked. I think of it as a kind of software archaeology.