Pokemon should learn dramatically fewer moves than they do now. Gen1 was closer to having the right idea on movepools than modern day.
I think that this mentality doesn't work in modern generations due to the way the games have progressed in design. More than Power Creep, Scope Creep is the real killer here - because the games have made a very conscious effort to "yes, and" existing game elements and balancing decisions, (and I've seen enough people erroneously complain about Game Freak removing Toxic from Gen *9* movepools to understand this call) there isn't really room to walk a lot of things back besides blazing a distinct trail forward.
There's also the fact that, in practice, competitive movesets often do boil down to a pool of 20 moves or less.
In most situations, Pokemon are going to stick to using their 10 best moves, upwards of 15 at most, and even that will often contain universal tools like Protect, Substitute, Return / Hidden Power / Tera Blast, etc. Limiting the set of tools to a total of 20 is a way to force pokemon into a specific line of play which can be more interesting, but even ignoring the impossibility due to backlash, it isn't necessarily a way to guarantee a stronger design.
There's also the way you have your list set up, which I think doesn't help. You picked a really tricky case to try with out and I don't think it worked.
Aqua Tail
Waterfall
Dive
Bounce (only because Magikarp should have it)
Fly (New)
Earthquake
Double-Edge
Crunch
Outrage
Flail
Dragon Tail
Surf
Hydro Pump
Fire Blast
Ice Beam
Hurricane
Dragon Pulse
Dragon Dance
Roar
Splash (From Magikarp)
Starting out, you have multiple examples of Redundancy - Waterfall and Aqua Tail, Fly and Bounce, to a lesser extent Surf and Hydro Pump - how granular you want to be in deciding what counts as overlap is up to you, but these I'd say at a minimum could be condensed.
There's also the moves that don't exist. Splash is the easy target, but I'd also say all of the Special moves aside from maybe Fire Blast and Hurricane do not contribute anything to this kit over 99% of the time. The overwhelming difference in attacking stats and Dragon Dance on top simply concentrates things on the physical side too much - even in a setting devoid of EVs or optimal natures, it's impossible to ignore the difference outside of exactly Ferrothorn.
With those factors considered, your 20 move list is functionally cut in half out the gate. The types of movesets it can create is also pretty limited - Dragon Dance is usually very centralizing on Gyarados anyway, but with only Roar for utility, it's even more the case here. The culmination of this process, then, is basically just Gen 4 Gyarados without the support sets. It doesn't work as well as you'd like.
Meanwhile, a movelist that replaces the aforementioned moves with some of Gen 9 Gyarados's best options might look something like this:
Aqua Tail / Waterfall
Dive
Bounce / Fly
Earthquake
Double-Edge
Crunch
Outrage
Flail
Dragon Tail
Dragon Dance
Roar
Stone Edge
Temper Flare
Power Whip (not in Gen 9 but work with me here)
Ice Fang / Avalanche
Iron Head
Scale Shot
Taunt
Thunder Wave
Icy Wind (for doubles)
And that's... Basically Gyarados's movepool in Gen 9. Which isn't surprising, except that Gyarados really only just got over the hump of having 20 good, non-generic, non-redundant moves as of Gen 9. And it's pretty easy to argue the relevance of moves like Dive, Bounce / Fly, Scale Shot, Icy Wind, etc on such a list, but they're definitely more likely to see actual use compared to Surf.
A relatively small amount of effective moves applying to Pokemon could work well in some limited context - for the RPG gameplay, for the strategy game ROM Hack stuff, or for a modded gamemode that redesigns around that focus, I could see it being really fun, but I'm out of brain power to elaborate any more than that.
Edit: Reading your later post, I guess you were more on about a single 20 move moveset that applies to both the RPG gameplay and competitive / PVP gameplay. Can't agree at all there, part of the reason movepools ballooned in size so much was trying to account for handling both of those sets of players at once.