_Ver can contain "?" after loading and in some circumstances this is not
cleared (often by setValue()) before saving (MultiPattern children or empty Part::Feature).
When saved the same "?" is then written again to the file causing the
recomputing dialog to pop up again and again.
This not only checks for an empty _Ver but also explicitly for "?" and
then regenerating the version if necessary.