Was going to post a thread like this, but found it on page 2, so bump?
In general, the games have posed little challenge and the A.I. is typically way too predictable, along with predictable team builds. I just one-shot your entire NPC team in SV and you're going to Terastalize to the very same type that the move is super-effective against? XD
Some ideas for improvement:
Yeah, there's no doubt that a player can do all sorts of things to make the game more challenging by introducing various kind of handicaps, but I personally don't believe a game should put it on the player to increase its difficulty like this. How hard would it be to introduce a setting of Easy/Medium/Hard, and the setting would decide how intelligent the A.I. is and even the NPC's team builds? Should be a cakewalk as far as coding this.
The reason I searched for this kind of thread in the first place is that I have an idea that could be interesting, though they won't likely implement it. ROM hacker idea, anyone? It's like this... Make an NPC trainer that is only accessible post-game. The moment you go to battle them, there is a quite deep A.I. that analyzes your current team in full, and uses that information to build its own team on the spot that is meant as a direct counter, with all of its levels matching the highest-leveled mon on your team. Beating said NPC the first time yields some very sweet rewards of some kind. After that, the NPC can be battled any time you want, for lesser rewards. If you change your team in even the slightest way when you go to battle them again, the A.I. recalculates and rebuilds its team accordingly. As mentioned, this probably won't be done due to the massive amount of calculation it would need to do to be able to pull this off, but if they did I think this would be pretty interesting. Again, if any ROM hackers are reading this, feel free to steal this idea and implement it, I would be happy to see it created!