>>38546256I feel like the HM for Fly is less "this pokemon who can fly now knows how to fly" and more "this pokemon now knows how to SAFELY carry another person while it's flying". I mean, for example, Pidgeot can fly very well, but without any training it's not gonna know how to carry another person without either hurting it, hurting itself, or dropping it. The training is the Fly TM. It tells it how to carry another person safely.
Surf also applies here imo, since that's like how to safely carry another person across water and not "you've now learned how to swim".
I'd still rather not have HMs but I feel like in the case of those two it's justified.