Overwatch’s balancing team does a great job, because pleasing casual players while also enabling the existence of a highly competitive environment like OWL is a task not easily done.
This ever-changing game state encourages to pick up different heroes during your OW-career, which is indeed desired by Blizzard and imho and exciting concept.
But this philosophy brings us to a problem: After some big changes, you might hate the playstyle/role of your hero, even though you loved it wholeheartedly until the balancing patch hit.
I don’t think this would hurt the prestige associated with a golden gun, because a single one-time-only swap of a golden gun every three years wouldn’t give you the ability to rotate all your golden guns. If you had five golden guns, you can only choose one of those to refund, not all five (you’d need 15 years for that!).
Of course you should always evaluate properly before you spend 3000CP to buy a golden gun, but I’m pretty sure the majority of people who aren’t satisfied with their golden gun anymore are people who got hit by a major rework (Symmetra, Mercy, D.Va, Hanzo, Symmetra).
I’m not even talking about nerfs: People still love playing Ana even though she’s struggling since the last few metas, while others quit playing D.Va because her transition from „all about DM“ to „high-mobility burst WITH ROCKETS, yeah!!!“ made her less appealing and/or satisfying, even though these changes caused her to be top-tier a few weeks later.
It’s especially sad for people ranking gold and below, since every golden gun stays a valuable, hard earned achievement. Having to quit the hero you bought the gun for brutally taints the memory of your multi-seasonal pursuit. So while totally not justified, it’s understandable that people start to hate the work the balancing team does.
Additionaly, there are many people who still love playing Overwatch, but quit playing Competitive for whatever reason, moving on to different modes. These people would get the chance to swap their old golden gun with that of another hero who wasn’t released when they reached the 3000CP a few seasons ago.
Regarding the implementation: I think a tri-yearly approach would suffice, since the knowledge of being able to stop regretting a purchase eventually makes it way more bearable to live with the (now only temporary) regret.
Realizing this idea with a „refund token“ or something like this would make sure even people who are still satisfied with all of their unlocks get the same value of of it, because you could save the token for later (even accumulating multiple tokens if you stay happy over the years).
If Blizzard decides to allow something like this, the anniversary event would be the most fitting date: Since the essence of the event is to celebrate Overwatch and all the people working on it, this solution would allow everyone who’s holding a grudge against the balancing team to newly appreciate their hard work. Again: We owe them a “thank you for your work” regardless, but we all know how we people are sometimes.