@capink: the right fix is to change calibre base so that it doesn't set values equal to themselves. This already happens for some fields like tags.
I have been looking at the field writers and have been able to make this work with all fields except custom series indexes. Problem: I don't know what I might be breaking, so Kovid needs to be involved. I will continue to work on this but I don't know what my constraints are.
I suggest you open a bug report suggesting that
Code:
set_metadata(id_, get_metadata(_id))
shouldn't signal any dirty books and see what he says.