The problem is on this line:
bm.to_mesh considers the shapekey offset between the bmesh and the evaluated
object, thus changing the object already transformed by modifiers.
I'm not sure if me->runtime.is_original indicates that the mesh is always the
one not changed by modifiers, but if that is the case, it seems to be a viable