There's a whole unnecessary reparse and compilation up to bytecode as part of the deoptimizing recompilation pipeline in CompiledFunction.handleRewriteException:
FunctionNode fn2 = effectiveOptInfo.reparse();
fn2 = compiler.compile(fn2, CompilationPhases.COMPILE_UPTO_BYTECODE);
It's possibly a remnant of some debugging that slipped through unnoticed. This probably almost doubled the deoptimizing recompilation work.