anyone know why this game has some strange typing and behavior?
Gyarados is flying/dragon yet his moveset and living environment is all water and part dragon. gyarados is flying but can learn no flying moves including fly. what the hell is the point of this?
Well I don't know exactly why the types of Pokemon are sometimes... strange :3 But, Gyarados is Water/Flying. I don't exactly know why he would be Flying, maybe he is a resemblance of some sort of fish-kites you see in Japan (carps), and he can't learn Fly indeed (even though I understand your part and it's a Flying type move). The only Flying type move it may learn (I believe trough breeding) is Bounce. Gyarados does resemble a Dragon, he does evolve out of a "fish" Magikarp, he therefore can learn Dragon type moves. I do agree on your part, I too, think Gyarados would have been better off as a Water/Dragon type but this may be due to the earlier games it was introduced in (in the Gen.1 games for example. It may also have a mythological explanation, there are lots of large dragons in Mythology that for example, rule different parts of the earth and sometimes roam the skies :) Sometimes there is more to the creatures the eye can't see or you might think ;)
There are other Pokemon with weird types/movesets. Like Natu for example, eventhough it has wings and resemblances a Bird, it cannot learn Fly (I think due to the fact it's so tiny, but i.e. Pidgey can learn Fly so it's a bit odd). Magikarp can't learn ANY TM move and eventhough Charizard was Fire/Flying in the Gen.1 games, it couldn't learn Fly either (in later Gen. games this was changed).
So, maybe it is possible this would change in the future, like they did in Gen.6 just now with adding the Fairy type to some existing Pokemon, but who knows, we just have to wait and see then :)