Engager/enabler is more of a spectrum then hard categories. Any hero that can project “threat” can engage, including most supports. All heroes lie along the spectrum, with most skewed towards engager, likely because people like to lead more than support in general.
What you are describing is archetype matchups, not roles. All heroes lie on a grid between the three main archetypes: brawl, poke and dive, just like they lie on a spectrum between engager/enabler. Ashe is frail and weak to dive because she is a poke hero, not because she is DPS. Torb is also a DPS but strong against dive because he is a brawler, which is also what Rein is. The difference between Rein and Torb in space-making capability comes down to Rein being strictly OP compared to Torb, because Rein is overstatted in either 5v5 or 6v6 formats.
2-2-2 had nothing to do with balancing for archetype disadvantages because all roles contain all 3 archetypes, so you can switch when you are being countered. If 6 snipers get countered by 6 divers, you can switch to 6 brawlers. It has more to do with the fact that tanks are defined by being OP, and therefor have to be limited or most non-tank heroes (excluding some supports, who are also OP) wouldn’t be pickable.
GOATS is made up of enabler/engager hybrids who layer enabling abilities with engaging abilities like pieces in a jigsaw puzzle. Mercy is a poke enabler who wasn’t used in GOATs because it was fundamentally a brawl comp and played to enable brawl-archetype synergies. It also used only “Tank” brawl engagers because tanks were OP compared to “DPS” brawl engagers.
By contrast, double shield was a poke comp and played to enable poke synergy. DPS heroes were forced because role queue was added after Sigma’s release, but in open queue, you would just run another poke tank like Roadhog because there is literally no reason to run DPS unless it was forced. Because tanks are strictly stronger heroes then DPS, which is my whole point.