To be honest, some of the Megas were complete cheeks -- on either end of the spectrum. Either cheeks to play against (busted as hell, ala Mega Mom, Mawile, Mence, Blaziken, Lucario, etc.), or were complete shit (Audino, Aggron, Houndoom, Steelix, Abomasnow...) Some Megas were actually very good while also being fairly reasonable. (Mega Garde, Manectric, TTar, Chomp, etc.) I loved Mega Evolution as a mechanic just because it often lent itself to changing a Pokemon's play style, and served to give some Pokemon certain niches.
One egregious thing I will never forgive GameFreak for with Megas is Absol; Why in the hell did we not get it as a Dark/Fairy type!? It'd be PERFECT as one! Mind you, this salt comes from my Mega Absol failing to OHKO an opposing Chomp in a game, which led to a loss because it didn't have STAB to reach the damage it needed.
Some Pokemon never needed a Mega (TTar, Chomp, Blaziken, Lucario...) but some loved having a Mega. It isn't entirely a thing of "Is this dogshit without a mega? Then dogshit permanently." Sure, a lot of the Pokemon that got a Mega were bad beforehand, but some were between serviceable and good without it. The Mega just gave it an extra push.
Z-Moves were busted AF. A non-recharge elemental Hyper Beam that pierces Protect (for a 50% damage penalty) that is only stopped by immunities? Sure, you give up an item slot for it, but if you just delete the only check to a certain Pokemon on the opposing team, you usually win by default.
IMO, when it comes to generational gimmicks, Megas > Tera > Z Moves > Dmax/Gmax. No one, absolutely no one, can argue that Dmax/Gmax was ever at all a balanced thing, lmao.