Difficulty is usually a good thing. A game that's too easy isn't really that fun or rewarding. Having said that, there are certain types of "challenge" that are more acceptable than others. As an example, I'm playing Crystal, and a lot of the Gym Leaders use some pretty clever strategies that provide a fair amount of challenge if you're not soloing the game with an overleveled starter (e.g. Chuck's Mind Reader + Dynamicpunch combo, or Morty with Hypnosis + Dream Eater). This is the good kind of challenge, having a competent opponent that tests your abilities.
On the other end of the spectrum, the earlier games are plagued with inexplicably sparse level-up movepools (as anyone who ever tried training a Voltorb, Pineco, or Hoppip in Gen II found out), TMs are rare and non-reusable, and many of the moves available are simply bad. The wild Pokémon are low-leveled, which in itself is the sort of boring easiness that makes a game unenjoyable, but then it's harder to prepare for the more difficult gym fights (and that's before you get to Kanto; oh man what was Game Freak thinking?) These are the kinds of "challenges" I find detract from the game experience rather than adding to it.
The perfect game challenges you in the right ways while also giving you a break every once in a while.