Pretty much have to, since I usually want to carry all the required HMs (so not necessarily stuff like Defog and Whirlpool) everywhere I go, and I rather spoil one moveset rather than six.

The rest of them I will teach to those Pokémon that can learn them and seem to fit best.
Red Gyarados is my HM slave in SS right now, Waterfall, Whirlpool, Rock Smash and Strength. Haven't really touched my Pearl in a while, and I have so many main party candidates, so I can't say for sure if I even have an HM slave there.

Guess Empoleon knows Rock Climb, Surf and Waterfall at least. (Normally I like putting physical HMs with high Attacks and the other way round, but this time was an exception since for once I didn't have any other water Pokémon in my team.)