Disable Edit>Update Tags When File Info Changes
Alternatively, I prefer to keep this option enabled for more granular control.
Library fields I specifically designate as "[ x] Save in file tags (when possible)" get saved to file tags automatically. These are a subset I typically fill out when ripping CDs which I want preserved as tags in the flac (and in some cases the cover art jpg/jpeg) file header.
I uncheck "[ ] Save in file tags (when possible)" for fields which change during normal playback, for the same reason called out by the OP.
In order to protect the original date on which I acquired the album, I created two custom fields that get saved as tags in the flac header:
[Date Acquired]
[Date Acquired (raw sortable)]Since
[Date Acquired] is custom, MC by itself never changes it. I fill it out manually when the CD is ripped. The second uses Calculated Data, with the expression
ConvertDate([Date Acquired]), so it is automatically written and makes sorting views on acquisition date easy.
While writable, these two custom fields have the great advantage of being independent of the file's operating system time stamps and independent of subsequent edits to any other fields/tags. The setup may sound complicated, but in practice it's simple, flexible, and "bulletproof" once
[Date Acquired] is filled in. For existing media collections,
[Date Acquired] can be quickly bulk-initialized from other date fields using multiple album selection and "=expression" in the tags panel. Once established, these field values are also saved in library backups.
Wiki Reference:
https://wiki.jriver.com/index.php/Update_Tags_When_File_Info_Changes