Using HM Slaves just takes away from the realism and fun of the game.
Do you guys think a real life Pokémon trainer would come across a big boulder blocking the way, to then walk all the way back to the previous town (Or Fly, but you still have to walk back in game. You could still fly back in real life.), go to the Pokémon Center, use the PC, deposit one of your good Pokémon because you already have a full team, take out a weak HM Slave that knows the move you need, walk all the way back, just to move the boulder? I don't think so. Yeah you've cleared the way now, but the problem is now you only have 5 Pokémon of your main team. If you want the 6th back I guess you could go back to the previous town and get it, but oh wait now the boulder reset. Even in real life where a boulder wouldn't reset, a real person wouldn't walk to and back and to and back a town. That would even be too much flying. So your only choice now is to continue on, but now you won't be able to use your 6th Pokémon on the trainers or Pokémon that are ahead. Once you get to the next town you can take it out the PC, but it will not have any more experience that it should have gotten along the way. It might sound like no big deal to some people, but this is a problem I have which is why I strongly dislike using HM Slaves. Obviously I would never use a team with HM moves competitively, but I'm talking purely single player here, the main game.