Quoted By:
HMs are a relic but the idea behind them is sensible. It's basically that there are some obstacles your character encounters, but with the help of your pokemon, you can overcome them. In terms of game progression it's a simple "get item, clear obstacle with item" deal. The problem is that every Obstacle™ can only be overcome by a specific Hidden Machine Move™. This system was an abstraction, like many things in the series and in games in general, but the idea could be conveyed better now, if we had competent developers.
For example, you could ride any pokemon and move and jump with them accordingly with their species statistics. You could dynamically interact with the environment with them. Instead of having to use Rock Smash™ to clear a rock, you could just jump over it with a pokemon big enough to carry you, or attack it with some other pokemon.
Or in keeping with the current system, you could use a HM move in the field as long as the pokemon COULD learn the move and you have the HM on hand. So if you have a bird pokemon, you could Fly with it without having to waste a moveslot with Fly as long as you have the Fly HM, or teach the actual move too if you want to have it. This gives general abilities to different pokemon on a high level and rewards the player for having a balanced and varied team outside of the context of battles.
So the idea is good, but execution is as banal as it was at first. Obstacles are good! They make the world more varied, offer more legitimate-feeling progression than invisible walls and blocking NPCs and the challenges involved in traversing it makes the player respect the world. Another problem here is that the player has to be immortal and invincible. Even in Mario, you can get hurt and die if you fall a great distance. Nothing can possibly befall you in pokemon, you can't even fall into water and get wet, so the movement options are still as simplistic as in Red and Green.