About flying type, I think that it could occur the following:
* if the Pokemon can fly, then it is flying type.
* if the Pokemon is a bird, then it is bird type.
* Pidgey would be bird/flying because it is a bird and can fly.
* Doduo would be purely bird type, because in spite of it is a bird, it cannot fly, so it wouldn't have flying as secondary type.
* Moltres would be fire/flying instead fire/bird. It is just the most sense choice to make it still seen as the legendary bird of fire, like Charizard being fire/flying or fire/dragon.
On that way, assuming bird and flying aren't the same thing, it's not a problem if you say that Zubat is poison/flying, because flying isn't birdwise, but it is about its ability to fly (when I say fly, I don't mean the use of the move of same name).
Gyarados is a specific case, anyways, I have always thought it was water/dragon before reading somewhere that is actually was water/flying. I got disapointed...