I've skimmed over all the posts and I don't think anyone has explained it this way.
Now mind you, I haven't seen his catching practices in Best Wishes, but if you look around at my other posts you'll see I don't consider it usually when discussing past habits of Ash.
While there are many practical reasons for Ash to have few pokemon from the viewpoints of the creators and managing the show, he also has an in-story reason for this. Sinnoh did well in highlighting that all trainers have different ways in which they approach their pokemon and battling, though this was present even in the early series.
An example from Showdown at the Po-ké Corral, Ash mentions he hasn't seen Kraby in awhile when they are in Prof. Oak's lab. Gary takes special note on this, seeing that Ash doesn't switch out and vary his pokemon often. In Sinnoh, we see in the final 3 part battle between Ash and Paul that Ash uses the same pokemon that were defeated in an earlier 6 vs. 6 battle with Paul, instead of finding a better way to battle against Paul, who switched up his team and adopted some of Ash's techniques.
Ash's specialty as a trainer is bringing out a pokemon's strength through close and intense bonds. Rarely will you see Ash catch a pokemon because "he wants it/it's tough/I want more pokemon". He usually teams up with difficult, disadvantaged, or quirky pokemon who he has to gain their trust first, barring special circumstances. If he just caught as many pokemon as possible, he wouldn't be able to nurture the close bond that has become his training style. Once they become his friends and reach their highest potential, or their potential rests in the training of someone else, he doesn't have a problem letting them go because friends are forever. However, would he have been able to care and nurture the emotionally scarred Chimchar to his full amazing capacity if he was constantly catching and switching out pokemon? If he caught amazing legendaries he would never have to use his other pokemon in battle.
Catching few pokemon and working with them closely and emotionally is how Ash is unique as a trainer, so in-story, I think this is why he doesn't/shouldn't catch so many pokemon and legendaries. This also somewhat explains why he doesn't bring all his pokemon to new regions, as again, he would just keep using the strongest ones without having time to focus on new captures.