Inspired by Overwatch again, but also relevant to other games: it’s not usually good when the best way to deal with a specific hero (unit, card, etc.) is to just use that hero yourself.
The whole reason to have multiple different heroes is to allow for different playstyles. Some people like just clicking on enemy heroes, so they play McCree or Widow. Some people would rather be disruptive to the enemy team, so they can play D.Va or Winston, etc. This is all fine, but one of the central ideas in Overwatch is that you can switch heroes mid-game to counter an enemy team. So it’s pretty clear the intention is some system of soft counters–you might pick up Winston specifically to shut down an enemy Genji or Widow, for instance.
The problem with this system comes when the easiest or most effective way to deal with a specific hero is … to pick that hero yourself. The two main culprits in this are Reinhardt and Ana, though Blizzard has taken some steps to mitigate both of these “self-counters”.
With Reinhardt, the problem is twofold. There’s the obvious difficulty in dealing with his shield; the easy and low-coordination solution is to pick your own Rein and then break the enemy shield by poking it down quickly. This isn’t necessarily a problem, though, because you can also dive the Reinhardt–he’s not a particularly good hero when you make his shield mostly useless by jumping into the backline with Winston and Genji or something.
The other problem is actually more serious, and it’s Reinhardt’s ultimate. Sure, you could suggest spreading out so an earthshatter doesn’t hit more than 2 or 3 people, but even a 2- or 3-hero earthshatter is often enough to win teamfights, and it takes a lot of coordination to spread out appropriately. The easy way to deal with earthshatter is to block it, but the only hero that can reliably do so is Rein himself, since the other barriers are too slow to create and too fixed-in-place.
Amusingly, one solution to this is to make earthshatter penetrate shields, though that probably makes it too strong in general. Alternatively perhaps you just leave it as it is and just admit that playing against a Rein without your own Rein takes lots of coordination. The addition of Orisa does at least add another barrier with 100% uptime, even if the barrier is mostly immobile.
You used to have a similar situation with Ana ult, where the only reliable response to a nano boost was to either use your own nano boost or to use sleep dart on the boosted hero. Other ultimates charged too slowly (especially near Ana’s release) to ensure they’d be available as a response, and no other heroes had basic abilities with disabling effects that would last long enough to neutralize a nano boost. With the removal of the speed boost that used to be applied during a nano boost you can actually either try to avoid the boosted hero (if it’s a tank) or still attempt to kill it (if it’s a dps hero).
Ana still does have a self-counter situation with her grenade, though. Double healing is strong enough that it’s nearly impossible to kill a tank with Ana’s grenade buff … unless you counter it by removing the healing altogether with an Ana grenade. Ana still works out okay in the end, but she’s been a staple of nearly every competitive team for months largely because her grenade really is that good, and it’s even better when the other team doesn’t have their own grenade.
Lucio also has a bit of this going on, since the only way to keep up with a teamwide speed boost (especially if it gets Amped) is your own Lucio. Lucio being an aura hero makes it hard to see how much of a problem the self-counter aspect of Lucio is, though, since auras have to be overtuned to get players to use them (Riot learned this lesson with League; it’s the reason that aura items no longer exist: every single one of them was too strong, and making them appropriately costed meant they felt awful so they would never get used), so Lucio is just too powerful in general … at least for now.