How to prevent my operators changes to a scene from being saved to file
I ended up duplicating the meshes with bpy.ops.object.duplicate(). Requires the mesh to be selected and visible, for some reason, so I unhide it with o.hide_set(False).
I didn't delete the duplicates for testing, which resulted in an infinite loop when iterating over for o in context.scene.objects. So I collected all meshes first in a list, then iterated over that list.