CPython currently relies heavily on eval loop magic to handle unwinding the stack after exceptions and other operations. This complexity then gets inherited by other eval loop implementations that rely on the CPython compiler as a front-end.
For CPython 3.7, it currently seems likely that we're going to shift more of the work into the compiler, such that the stack unwinding is explicit in the bytecode, and the eval loop no longer needs to manage that state separately from the opcode evaluation sequence.
https://bugs.python.org/issue17611 and https://github.com/python/cpython/pull/4682/files have more details on the expected change.
(This would presumably affect VOC in addition to Batavia)