As someone who doesn't play competitively, I don't cheat for perfect/shiny Pokemon. I've used an Action Replay device for other reasons - like getting the GB Player right at the start of HGSS for nostalgia's sake, unlocking Challenge Mode immediately in Black 2 so I can play through the game with it, and getting event Legendaries or event items that are impossible for me to obtain otherwise due to lack of availability - but never for actual Pokemon I could get through other methods, be it catching wild or trading for with one of my other versions.
Training is a huge part of the game for me, so taking shortcuts would spoil my fun...asides from Black, I've never found training to be tedious. If I took shortcuts training, I'd finish the game within a day, and I like to pace myself when playing Pokemon games. A large part of the way I do that is through training my team.
However, if I WAS to start battling online, I would almost certainly cheat, because I lack the patience to painstakingly craft perfect Pokemon. It's tedious, monotonous, time-consuming and boring. No doubt it's satisfying when you're finally done, but for me the satisfaction wouldn't be sufficient for the hours I'd put into doing it, especially considering the results aren't guaranteed in breeding and things don't really pay off until you're done; there is little in the way of satisfaction to be gained from progress, which is important too - I like feeling I'm reaching my goal in increments, rather than flailing in the dark until I'm done.
So long as you don't break the game with impossible movesets, stats, abilities or whatever else, I don't see the issue with cheating if you're playing competitively - it lets you battle that much sooner, and you're not hurting anyone with it.
The whole point of any game is to have fun. If cheating to get a decent team helps you enjoy yourself, why not? As long as you're not interfering with anyone else's fun, who cares?