Overwatch sucks for the same reason it is great.
Hero diversity. Heroes in Overwatch are so unique and wacky that balancing them across all ranks is impossible.
Junkrat, Bastion, Torb, Sym etc. These heroes are noob stompers. They are incredibly frustrating and powerful to fight against as new/less-skilled players. However, as you go up the ladder they become less and less relevant until essentially being a throw-pick.
The devs are stuck between a rock and a hard-place because they can neither buff/nerf these heroes without massive negative repercussions.
At the opposite end of the spectrum, we have heroes like Widow, Sombra, Tracer etc.
These heroes are harder to get value out of than most, requiring team coordination, high-mastery over the hero, good game sense and/or high mechanical skill. At most ranks there are easier and more consistent heroes you can pick to get the same value but these heroes have a much higher skill ceiling allowing for bigger plays.
The solution: Ranked based balancing.
This in theory fixes the vast majority of Overwatches issues, it gives the devs more freedom to buff/nerf heroes, while still making them accessible to everyone.
Take Moira for example, she is also a bit of a noob stomp hero. With a massive hitbox on her primary and damage orb. If you can’t hit your shots, she will slowly drain you to death while A-D spamming. However, for higher-skilled players she is basically a non issue. Her damage output is pretty absymal and she has little play making potential.
At GM she is the least picked support and has the second lowest win-rate in the game. An example of ranked based balancing is that Moira could have her primary hitbox made smaller, while increasing her damage output at GM. Making her more effective at dealing with flankers.
This keeps her accessible at lower-ranks but keeps her viable at higher ranks as well.