bq. Currently we tag issues with fixVersion before commit, to indicate what BRANCHES we intend to commit to

I don’t ;). In fact, I’d favor requiring this to be blank until a fix is committed. There are, as you’ve found, far too many instances where it’s filled in and completely inaccurate.

What I prefer to put in the fixVersion is the version numbers of all the branches I ported the fix to. There are things we put in, say, 8x that never get into the next major version. How would we know which ones those are?

Can the build tool get clever with a query about requiring the JIRA to be closed before using fixVersion at all?