I have sympathy for your sentiment, but you don't have to come up with a proper definition nor get everyone to agree on that definition.
The Go people can just make up reasonable version numbers without having an all encompassing theory with definitions, and they only have to convince themselves, not everyone on earth.
Re:Go Replaces Interface{} with 'Any'
by naikrovek on Wednesday December 15, 2021 @12:56AM
(#29562600)
> The Go people can just make up reasonable version numbers without having an all encompassing theory with definitions
but "breaking change" IS the criteria for reasonable version numbers that they have chosen.
"breaking change" is easily tested and well defined.
"big change" is as far from well defined as you can get, because "big" is unquantifiable and subject to judgement and interpretation; i.e. a poor candidate for drawing boundaries.
The Go people did something reasonable. Yes, agreed.
I'm just saying that they could have done something different, if they had wanted to, without working out a complete theory for that different thing.
that's why semver works; the definition of major change is defined, and that's when you update the major version number.