Reposting other person's post from previous thread because it's important.
Your SR gain/loss is determined by how well you perform as that hero relative to other players (at your rank)
Scenario 1
>Round one, play Soldier, 25 kills
>Round two, switch to Tracer, 25 kills
Scenario 2
>Round one, Soldier, 25 kills
>Round two, Soldier, another 25 kills
Scenario 2 has you end the game as Soldier with 50 kills, which is higher than the average, meaning that you gain more SR. In Scenario 1, you perform the same with regards to kills, but you gain less SR because 25 eliminations on Tracer and Soldier is pretty middling.
So not only do you get more SR if you play off-meta heroes like Sombra (because it's easy to do better than the "average" since there are so few) but you also get more SR for insta-locking and refusing to switch.
You also lose less SR with this method. Assuming a pure 50:50 W/L, you will climb. This explains the number of shitters in gold, plat, diamond, etc. because if the game actually rewarded playing as a team and punished playing as a solo-carry then they would eventually descend the ranks into gold, silver, bronze where they belong
But Blizzard will not fix this. They don't care. There is no aspect of this game that I look at and think "I'm confident that Blizzard will address this in a meaningful and relatively prompt way"
Is this actually true though? Surely there'd be more of a reaction if it was. There's no way people are just ok with a system that punishes people who switch and rewards stubbornness