Snakes used to have legs eons ago, they actually sometimes find tiny vestigial legs in modern snakes, and Serperior is snakelike in form. If you think along those lines then it makes sense for a Snivy to be classified as a Grass Snake Pokémon. I hope this explanation helped (^-^)/