My Hydra Slayer (which uses a binary savefile format):
- saves the version number in the beginning of the savefile
- when loading each field, a check is made "if savefile's version number is at least ..."; this makes sure that fields which did not exist in older versions do not cause save compatibility problems (for example, hydras get a "bloody" field in version 13.0, but loading "bloody" is skipped if the savefile version number is smaller than 13.0)
- arrays include some reserve (for example, there is an array which lists the number of kills for each type of attack; this array is bigger than needed, so that I do not break savefile compatibility by adding new attacks)
And that's mostly all that is required to have savefile compatibility. No problem. There would be a problem if you remove something, (say a PC race, as Crawl often does), but why not just remove this race from the list, still allowing it internally?
Savefile compatibility is a good thing if the new version just fixes some bugs, or for a long games which take, say, a week to complete (either by design or for a challenge, e.g. get as deep as you can in ADOM's Infinite Dungeon), if I were playing such a game and a new version came out after 2 days of playing, I would like to update to the new version.
Also I prefer to keep my high score lists from the old version when I update.
If you have changed the game balance, then updating the game in progress gives you unbalanced characters. For example, if an old version has powerful equipment and powerful enemies, and the new version has weak equiment and weak enemies, you can update in progress to get powerful equipment and weak enemies. Or, if the old version gave you an artifact on level 10, and a new version gives you it on level 12, and you update on level 11, you get it twice. But I don't think this is important unless you really change something. Hydra Slayer never had a change which justified breaking savefile or highscore compatibility IMO. I think the thing about doubling/missing artifact could happen, but I think it just causes the player to think that the RNG has generated a weird game (and it states it in the log if it finds out that the game version has been changed in progress).