There seems to have been a massive code overhaul for Ruby and Sapphire that they've built upon to this day. Those old Key Items are still kept in the code. I definitely think another overhaul is long overdue, and it kind of surprises me they didn't use the occasion of Dexit to do so.And it doesn't help that over the years they have been carrying around a ridicolous amount of legacy code (see, how battles actually work behind the scenes being the same or almost the same for.. how many gens again?)
A counterpoint is that this playstyle isn't necessarily very intuitive. As a kid, I certainly didn't have a habit of rotating my team that much. What I caught was what I used, and that's generally a tendency I see from other players as well. Upon capturing a Pokémon you're asked to give it a nickname, which encourages bonding with the Pokémon. NPCs are always talking about your Pokémon as your friends and partners, which really discourages sending them to the PC. You wouldn't want little Lucky to miss out on that next big battle, would you?TL;DR Pokemon games, key thing to remember, is that they are meant to be played with a dynamic and rotating party. Keep catching and experimenting with Pokemon, phasing them out as they fall off, and rinse and repeat. This is a big reason why early game Pokemon evolve early but become weak and subpar later on, while late game Pokemon are better but reach their potential later. Part of the challenge for new kids is that they don't know which Pokemon are good and which aren't: the charm for them is to keep meeting new Pokemon and catching them and playing with them until they lose their luster and then phase them out with another Pokemon they meet later on. Of course, us veteran players know everything about each Pokemon, and know what makes a good Pokemon, so we don't play like this: we can look everything up on Bulbapedia/Serebii and use our knowledge of the inherent Pokemon mechanics to meticulously plan a team consisting of the best of the best and handpick a fixed team of six consisting of the best and most effective Pokemon to use throughout the game, which is another key factor in what makes the games "easy" for veterans.
The prospect of evolution and the potential of learning new moves by level-up also entices you to keep your Pokémon around, because you'll never know if it will evolve or get a move that makes it really good. The Pokédex can give you a small pointer of whether the Pokémon has an evolution or not, but it's still hard to tell whether a poorly performing Pokémon is going through a rough patch or if it has reached its full potential and simply is that poor. Without looking it up, it's hard to determine if a Pokémon is worth keeping, but many players might keep it "just in case it becomes good later".
There's also the tendency of recurring NPCs to keep the same Pokémon around throughout most of the game. Early on, Blue eventually discarded his Raticate, but the other team members remain the same from the moment he catches them until the Champion battle. Silver never discarded any of his Pokémon, nor did May/Brendan, Barry, Cheren, Hugh, Hau or Gladion. At one point, Calem/Serena discard a Fletchling they have at the very start of the game, otherwise their teams are static. Only N and Hop make significant changes to their teams throughout the game. I think that if the game is designed around a rotating team, it should have been a little more upfront about it. Talking more about reorganizing your team, NPCs explicitly referring to Pokémon being boxed, stuff like that. Perhaps gift Pokémon are meant to be subtle encouragements to make changes to your team (not-so-subtle in the case of the cover legendary in XY!), but at least for me, I tend to box the gift Pokémon if I've already built a team I'm happy with.
Then again, these days I tend to run two teams in my playthroughs, swapping between them after each milestone battle, but otherwise playing the games completely straight. It's surprisingly fun, and quite challenging at times.
Overall, I think it's easy to sell to players the idea of trying out new Pokémon, but there's some psychological threshold to overcome for a player to discard a trusted team member. I think the games could benefit from addressing that bit a little better.