I think it makes it needlessly complicated, it's not just a case of removing a single opcode or compiled variable, it's a case of removing an arbitrary amount of opcodes and compiled variables, doing it in such  a way that does not break anything. There isn't actually any need to scan the opline here, a jmp is cheap, the effect during production even with opcache not loaded can be seen in the RFC to be negligible.  When the opcodes are manipulated by opcache it negates the overhead of such operations by only having to do them once. 

I don't see that it's more efficient to do it any other way.