I think all of that is fair. I think where the rubber meets the road here is actually in your final paragraph which was "that extra million". It's about only an extra million if he plays at the Calgary level. But that was one season. If he plays how he did for basically his entire career until last year, it's an overpay by $3M+. I think overpaying a single player by $3M theoretically could be the difference between making a move you'd like to make and not being able to. When it's a $1M gap, you can more easily get creative. The higher that gap gets, the tougher it is. Not necessarily impossible, but tougher.
And the other thing is it's not just the money/term, but how good he is. If you pay a guy $7M in free agency to be your 2C and he's only at a 3C level, okay, it's not great that you've overpaid him by $3M, but at least he can still provide valuable minutes for you. It's not as easy to tolerate it if it's overpaying $3M for a guy that's a borderline NHLer and is/should be a healthy scratch most nights.
If we get the Calgary version of Gudbranson, even if it's still a slight overpay, it's more palatable, because he can provide decent minutes. If we're paying Gudbranson to be the near-replacement player he's been for basically his entire career, not only is it an overpay that potentially could cost us the ability to make a future move, he could also literally be a liability on the ice. I'm hopeful he'll be Calgary-level for most/all of the contract, but I'm skeptical.
And I think that's also where a lot of my frustration lies; it seems an overreaction by us based on a few games against Minnesota for a player who really most of his career has honestly been a really bad hockey player. But we'll see, perhaps he turned a corner this past year. He would not be the first defenseman for the light to come on even as late as late-20s / early-30s.