The way I see it, time spent practicing should be a factor of skill, and if you spend your time practicing a character that happens to have someone counter them in a tourney in your future, that means that you just spent all that time for nothing. Because of this, people will go with the characters that don't have any counters to be safe and make sure they do not lose practice time spent.
Additionally, having an disadvantage in a match because a character counters you is just as bad as having a disadvantage due to an item spawning next to them.
In the end, the goal of competitive play is to have an even match where the outcome is determined by pure skill. Having a character with a large natural advantage over you means that it isn't a completely fair match.
Also, I would argue that the game should make you seek to perfect one character rather than become decent with them all, but that's largely subjective.
Learning characters in this game is really not hard at all if you've ever spent time playing other competitive fighters where learning curves were high and any particular action or combo required highly specific input strings. B+ is ridiculously easy by comparison and time spent practicing whatever skill ceiling your character easily reaches is just as well or better spent familiarizing yourself with other characters so you become aware of what they can do in general so as not to be surprised by their strengths. You would also be able to use that knowledge against those who don't play as them or fight against them. No amount of practice on your own will help you "play smarter" overall and relinquish the character fanboy mindset.
Having a disadvantage because a character counters you can easily be attributed to bad decision making skills long before being attributed to luck. Even in the jack-of-all-trades scenario I mentioned, you would go with a character who has as few skewed match ups as possible to send out first. A character that is least likely to ever get countered hard, but also has a lack of counter ability themselves. This is the same concept behind a starter pokemon in your pokemon team. This is unavoidable. There's also a difference between an item popping up next to your opponent and the same item popping up next to your opponent when you have advance timing, preparation, and your own "items" to pull.
If the goal of a competitive play is to be won by pure skill, then you don't play video games with a high number of variables. You play one-on-one sports, or board games like chess. It's fundamentally impossible to make 39+ odd characters even with one another yet unique, and there's absolutely no reason to assume we're any more capable at breaking this mold even if we were a paid, fully resourced development team.
If you think perfecting one character only is ever a good decision for your competitive fighter career, then you play a top tier character with no bad matchups whatsoever while also having the highest number of practical advantageous matchups. This game isn't supposed to cater to that either, though. I don't see how it's disagreeable that it in fact takes "more skill" to be great with multiple characters, and that players with more skill should be the players that win more often.