HMs.
Instead of fixing the issue they just shitcanned it and replaced it with a series of retarded alternatives.
The simplest solution would be to make each Pokemon able to learn a field move, and have that field move be completely independent of battle moves.. And instead of having multiple redundant HMs, upgrade existing field moves when you win the appropriate badge. For example, a Pokemon can be taught Surf as an auxiliary move, and after earning the 6th badge it gains the additional ability to climb waterfalls, and after the 8th badge it can cross whirlpools, while still having four moveslots available for battle. Alternatively, Surf could be taught as a combat move, which makes it accessible as a field move while also leaving the 5th slot open for another HM.
This would extend to other field moves, so utilities like Teleport and Headbutt don't have to take up a move slot either.
HM whores are a thing of the past while your Pokemon become useful for things that aren't strictly battle.