How I usually do moves is like the rest, free form. But there are restrictions to what I do and what I believe in. Movesets are there for a reason, so I believe each Pokemon should be able to use the ones that they are given from their information on the various wikis or serebii. They can learn their respective egg moves and TMs too and use those. There shouldn't really be a limit on what they can learn and know, but we should probably do it where it makes sense if they can know it or not. An example is a starting Charmander can't or shouldn't know Flamethrower or Fire Blast, it should respectfully know Ember and use that. Upon experience and using the move over and over it could then progress the Ember into a Flamethrower or Fire Blast, unless tutored or taught (like how Pikachu was taught how to use Iron Tail). Also having Pokemon know Take Down and Double Slap and whatnot is something I don't believe they should 'know' per say. They obviously know how to take each other down and how to slap one another, but those actual moves shouldn't be learned by everyone because they can't be. Pokemon know certain moves for a reason, that's what individualizes them and makes you think about which ones to choose from. In writing you could write the action of taking a Pokemon down but not really using the move Take Down, that's just my thoughts on this subject.