Automatic Generation of a Hybrid Query Execution Engine
arxiv.org
arxiv.org
I think it's basically a local minimum for implementation complexity vs performance though. To push that further you probably need to modify the original interpreter or encode more (any) knowledge about the semantics in the JIT, at which point you lose the main advantage of maintaining only one codebase.