Matt:
"my little three-step process is really four steps, since you have to specify the track(s)."
In my concept the orange snowflake is exactly how you do that.

"But you are correct to ask, what happens next, if the user regenerates the song again."
Orange + Blue "snowflaked" tracks will stay the way they are, everything else - regenerated.

For example you want to re-generate a section that already was held in place by "generate selected" with orange snowflake...
It could just prompt: "Section has frozen bars do you want to re-generate?" Yes/No.

Blue snowflake freeze - will ignore any changes.

The principle and operation is the same: Select Bars->Generate or whatever the "wording" might be.

Again, this is idea for visually seeing what is getting Bar-to-bar regenerated (and held) and what is not, and I think have a multi-purpose "freeze" button which will double as a selector and indicator of which tracks are being grouped for bar-by-bar and slim line at the bar could solve this in minimalistic, yet very usable way.