The HM problem could be solved by doing away with the paltry limit of four moves and allow Pokémon to know every move they can learn. It could instead be set up as sort of selecting four moves to "equip" for battle, retaining the game's strategy of move setup, but making it a lot easier to manage movesets and not waste slots on HMs or carry HM mules.
If they would make it so each pokemon remembered all of their moves, but you only had 4 slots you could fill for battles (changeable while accessing the menu), I think it would do great things for the playability of the series, as well as not having to regret accidentally deleting a move you find out later was more useful than you realized.
Hell, I'd like to see pokemon's moves increase in effectiveness the more you use them. So if you have Pidgey use Quick Attack over and over, it'll be more effective than the tackle move you haven't been bothering to use.
I see Pokemon as a series that could have so much potential in being an incredibly deep and satisfying game, but they don't need to, because their fan base eats each entry up like hotcakes.