HM's are alright in a way, but there's two many of them. I'm running around HeartGold with a Tropius and a Bibarel for all 8 HM's. That means I've got a team of 4 and I'm getting bitched by the Elite 4, so I need to go out, catch a fresh 2 and train them up. Feck that. Let's look at the current HM list:
01 - Cut
02 - Fly
03 - Surf
04 - Strength
05 - Whirlpool
06 - Rock Smash
07 - Waterfall
08 - Rock Climb
Far too many. Lets bring it down a peg. Cut and Rock Smash do the exact same thing (remove an arbitrary obstacle). I say remove Cut, because it makes more sense for a large boulder stack to be in the way than a small tree. Likewise, remove Strength because it makes no sense for some boulders to be smashed and some to be pushed away. Let's see that list now.
01 - Fly
02 - Surf
03 - Whirlpool
04 - Rock Smash
05 - Waterfall
06 - Rock Climb
Now we're down to 6. Better, but not enough. 3 of them relate to travel by water. Surf makes sense, waterfall's a bit dodgy and whirlpool can just, as they say around my parts, "get tae". So bye-bye whirlpool.
01 - Fly
02 - Surf
03 - Rock Smash
04 - Waterfall
05 - Rock Climb
Even better, but lookie at 4 and 5 - Waterfall and Rock Climb. Essentially, Rock Climb is just a dry land Waterfall, but more inaccurate and not loved by the Gyarados fans out there. So say good-bye to Rock Climb.
01 - Fly
02 - Surf
03 - Rock Smash
04 - Waterfall
Now isn't that much better. Using logic, I've literally halved the HM count to something much more useful. We all know why there was so many in the first place - by putting an obstacle there, it prevents the player from going too far ahead. Still, there are other ways to do that. Snorlax and Sudowoodo did the job just fine.
On a related note, remove those irritating arses that walk in front of you and refuse to let you past. In Diamond, you couldn't get to Sunyshore City because the road was closed. Annoying, but it made sense. Having some 10 year old fudge nugget tell you he's not letting you out the city until you have the badge, however, is awful.