3. Effort Value Accessibility
Bulbapedia does a much better job than I could do explaining exactly what effort values (EVs) are: “Effort values. . .are attributes which give bonuses to a Pokemon's stats and improve differently depending which Pokemon they defeat.” For example, every time your Pokemon defeats a Bulbasaur, it gains a single point towards its EV special attack attribute. Furthermore, each Pokemon can obtain only 510 effort value points, and only 252 in any one stat. That's a lot of Bulbasaurs to beat up.
To make matters worse, there is little way to tell where the EVs have gone until the Pokemon hits max level. Gamefreak introduced items to speed up the process, but raising Pokemon to be as efficient as possible boils down to fainting the same set of creatures over and over until the stats max out. Managing these EVs makes or breaks a competitive Pokemon.
If that just made your head hurt, you're not alone. Effort values are far too complicated. More clearly displaying EVs, or allowing the player chose what stat to place each EV, would go a long way in making competitive Pokemon play much less of an unnecessary grind and much more accessible.