But then what happens if you go to an island town(like Mossdeep) , deleter surf and fly, and then release all of your \Pokemon that can learn either?
Then you're an idiot and don't deserve to continue playing anyway.
It doesn't matter. Like COBRA! said, a game should never have such a hole in it. It just isn't done.
That's easy, just have a ferry NPC that will take you across for a small price.
Then add a way to earn a very small amount of money on the island so you can always afford the trip, but not exploit it to get rich quickly.
Then you'd have to make it only show up after you get the HM or Surf becomes useless.
And your assuming that every body of water would have this feature which would be insane to implement. then your also paying for every boulder to be strength'd rock to be smashed rock and water fall climb, cut shrub, and any other HMs that a added.
It can only make sense that HMs be deleted in Cities to prevent players getting stuck. Even if it ends up being one guy in every city.
Sort of have a move learning building in cities. Moves taught/forgotten TMs for sale etc.
All games have holes like that. If you activley strive to screw yourself over, you will be able to screw yourself over.
Or they just turn the HMs into items in your backpack that Pokemon can use as a tool to preform an HM move, if the requirements are fullfilled. Rather than being a move you teach it.
Since you can only release Pokémons while at a P.C the programers could add a "zonelock" that prevents your from releasing ALL of your pokemon that; for example can use fly/surf while you're at a P.C on an island, and if so the game could just give you an error message like "I'm afraid that you can't release that Pokemon at this time. Try again later."
Perhaps in the Pokemon Centers?
Also that one the middle reminds me of Nosepass for some reason.
Wait... that can only mean... it's... That must be Ms. Mime!