I believe cheating is only acceptable in a few cases:
Events/Version-Exclusive Pokemon You Somehow Can't Find: You can't really complete the Pokedex without these Pokemon, and not all Trainers have an equal chance to even get them legit from events (i.e., U.S. trainers currently can't get legit Celebi at all, unlike players in Japan) Plus, it's not fair if some people live minutes away from event cities like NYC when others have to travel hundreds of miles just to obtain a few pieces of data that can easily be lost (no offense to Pokemon). But we really wouldn't have to cheat for these event Pkmn if the Pokemon were made available at the game store, or if they were offered on Wi-Fi with certain in-game requirements.
Lastly, if you can't find/no one's providing you a specific Pokemon, as with Kisame's Larvitar example earlier, then cheating for that is valid as well.
Besides these reasons, cheating simply for things like max stats or illegal abilities and movesets is just wrong.
(Sorry if it seems like I'm rambling or something; just wanted to get my point across!)