I feel like people just think "HM BAD BECAUSE ME NO LIKE GIVING UP TEAM SLOTS" without thinking of their actual purpose. Now let's think this out.
>There is no point in having an obstacle if that obstacle can be removed at any time without any sort of sacrifice.
>Obstacles that you as the player can remove give a greater sense of agency to progression compared to characters that refuse to let you pass for arbitrary reasons.
>Certain HMs have far greater utility than others, such as Fly. Many games with larger worlds have fast travel options built in as common features. Fly is not a situational ability like removing an obstacle, it's one that should be common. The only real reason to have it as an HM in older games was due to poison being able to KO you outside of battle and having to risk a journey back, but that's not the case anymore.
>Obstacle removal HMs are Cut, Rock Smash, and Gen II Whirlpool
>Strength is more about moving obstacles than removing them which can lead to interesting puzzles
>Increased navigation HMs are Waterfall, Rock Climb, and HGSS Whirlpool
>Increased exploration HMs are Surf and Dive, and these can be replaced with items
>Ease of navigation HMs are Flash and Defog and these can be replaced with items
>Strength was the only situational HM that was properly implemented because once you activated it, it was active for the entire room. In areas with multiple activation spots (Rock Smash, Rock Climb, Cut, etc.), you should only have to activate it once and removing that object again should be a simple matter of a button press.
>Better yet, set certain HM abilities as "On" so you only ever have to activate it once, but give players a reason to turn it off by making obstacles serve a greater purpose (ie. like combining cuttable trees with headbutt trees, honey trees, and berry trees, or bringing up a choice between Surf, Dive, and fishing when interacting with water)