I really like your overall analysis, but I feel compelled to quibble with this point a little bit. I think Megas mostly benefit from hindsight in this regard, as there definitely was a “Kanto pandering” sentiment from fans around Megas at first, what with the Gen 1 Starters getting Megas but not the Gen 6 Starters, and with two of those Gen 1 Pokémon getting two different Megas on top of that. They absolutely leaned into the whole “Remember how cool Charizard is?” shtick, seeing as how Venusaur and Blastoise each only got one Mega, while Charizard got an entirely separate, wish-fulfillment badass black dragon Mega that saw an entire animated special dedicated to its reveal. (Funny enough, signature Z-Moves passed Charizard right over.) And Kanto Pokémon did have the majority share of Mega distribution at first (in XY, the breakdown was 12/5/8/3, or 12/5/10/3 if you count the datamined Latis), but of course, that perception could only exist before ORAS were released, and wouldn’t be in most peoples’ minds today.
I don't think anyone would deny there was at least some
level of Kanto bias in who got Megas (many of them kinda needed them anyway), but I think the prevailing point (and what I think pika pal is getting at) is that regardless, Megas still had a decently fair share of distribution among the generations: Johto and Hoenn still got a pretty good share of the pie in terms of Megas, and they even went and gave a few to some Sinnoh mons, even if one of them was Lucario. In that sense, while there was some Kanto bias, back when they gave Megas they still gave Megas to more old-gen mons than just Kanto. The breakdown of 12/5/8/3 in XY specifically doesn't give Kanto a significant
edge in terms of distribution over the other generations that got Megas: Johto and Sinnoh had a smaller amount of Pokemon than Kanto did and they got a relatively decent share of Megas proportional to the number of mons each generation had. 8 Hoenn mons getting them in XY, 10 if you count the Latias, is a good proportion of Hoenn Megas for instance, relative to the 135 total mons Hoenn had, making it similar in proportion to Kanto which had 151 mons, same with Johto and Sinnoh which had 100 and 107 new mons (if you exclude cross-gen evos from Sinnoh's roster than it's even smaller).
Moreover, even then the Mega Evolutions were oftentimes a mere bonus. The Kanto starters got Megas, and Charizard did get 2 (I like Charizard so I personally don't mind it got 2 Megas, one of them being a Dragon-type which is my favorite type), but in-game they were more of a bonus than anything so they didn't stand out that much. Heck, as far as Megas you face as opponents in-game, most of them aren't Kanto Pokemon: Diantha the Champion had her ace as a Mega Gardevoir, and Gardevoir is a Gen 3 Pokemon. The Pokemon that introduces the player to the concept of Mega Evolution is Lucario, who is a Gen 4 Pokemon. Your rival's Mega in the post-game is a Mega Absol, who like Gardevoir is a Gen 3 Pokemon. The only Kanto Mega you face as an opponent is Gyarados from Lysandre, and that's Gyarados, not Charizard for instance.
And among the few Megas who were usable on an in-game playthrough, aside from Kanto trio and Lucario, you could use Mega Ampharos (Gen 2 mon) and Mega Abomasnow (Gen 4 mon) in-game.
Z-Moves and Gigantamax forms, instead of toning down on Kanto, chose to double down on Kanto pandering even harder to a point where the Kanto bias with signature Z-Moves and Gigantamax is even more notable. Signature Z-Moves were pretty much entirely given to Kanto mons barring the Alola starters in SM, even if the OG Kanto starter trio was skipped over, while only a select few Alola mons would get them later. Gigantamax was even more egregious, in that aside from the fact that the old-gen roster of mons who got G-Maxes was not only almost entirely Gen 1 mons, several Kanto mons ended up being aces of Galar
Gym Leaders to show off G-Max. Bea and Allister had Machamp and Gengar respectively as aces. Melony has a Lapras as her ace. And of course the Charizard pandering was at its worst in SwSh because not only was Charizard the only one of the three to get a Gigantamax at all at first (Charizard may have gotten 2 Megas back in XY, but Venusaur and Blastoise still got Megas apiece from the get-go), they went as far as to make Charizard the Champion
's ace Pokemon. Leon is basically a Charizard shill character to the max (even if I do like him a lot as a Champion and as a character). They gave a special G-Max form only to Charizard at first and then proceeded to make an entire character who served as a Charizard shill, and said character was also the Champion of the region.
Like yes, there's a bit of hindsight benefit there, but while Megas aren't totally innocent of Kanto bias they still gave love to Kanto in a relatively healthy manner while still throwing some bones to the other old generations at the time. Even ORAS threw some more bones to Johto, Sinnoh, and even one to a Gen 5 mon. Both games gave all the old generations a share of the pie in terms of Megas.
Z-Moves and G-Max on the other hand chose to double-down on Kanto bias completely to the point where the Kanto pandering with them is much, much more blatant. Especially since Alola and Galar as a whole chose to double down on Kanto pandering harder with Galar having its three most popular Pokemon in-universe be literally Kanto mons, many of its Gym Leaders and even its Champion have Gen 1 mons as their ace, the Champion in particular having Charizard as his ace, and meanwhile Alola has many of its HM ride mons literally be Kanto mons (yes, Charizard may not have gotten a signature Z-Move but it was used as the Fly bot in-universe in Alola), all of its regional forms back then (the other new concept Alola had) were from Gen 1, and the player character in the Alola games is literally from Kanto. So in those cases the Kanto pandering sticks out so much more because it comes at the complete expense of both other older regions and even Alola and Galar themselves in some ways.