The original assumption that the `modifyMesh` function is only called when the modifier is applied was wrong. There are still a couple of other places calling it through `BKE_modifier_modify_mesh`. Now there is an extra check that makes sure instances are only realized when the modifier is actually applied.