For example, we recently realized that “Avoid this player” was wreaking havoc on matchmaking. One of the best Widowmaker players in the world complained to us about long queue times. We looked into it and found that hundreds of other players had avoided him (he’s a nice guy – they avoided him because they did not want to play against him, not because of misbehavior). The end result was that it took him an extremely long time to find a match. The worst part was, by the time he finally got a match, he had been waiting so long that the system had “opened up” to lower skill players. Now one of the best Widowmaker players was facing off against players at a lower skill level. As a result, we’ve disabled the Avoid system (the UI will go away in an upcoming patch). The system was designed with the best intent. But the results were pretty disastrous.Essentially, players took a system meant to avoid toxic players, and instead chose to avoid players who were simply more skilled.
Another issue with this system is that it didn't have a cost. I think time and again, games have shown that when an action does not have a cost associated with it, people will abuse it. Think vote kicks from MMOs. Then the action gets removed or hedged with excessive restrictions, such that it becomes fairly useless.
Imagine if avoiding a player cost 50 credits (the currency for the cosmetic items). The amount of people who abuse this system would drop drastically. But if there was a cost, everyone would complain that they had to pay "real" money to avoid the people harassing them. Yet the end result is that we lose the avoid ability entirely.