Steady State Auto-Balancing
Looking at the scale of some of the online multiplayer games, it’s always fascinating to see how people always complain that only a small subset of things are usable in competitive play. In Halo or Counter-Strike, only a handful of weapons are considered good and the rest are never touched unless you’re in very constricted situations and the less-preferred weapon is the only option. League of Legends has over 100 champions to select from, but you only see about 30-40 played the majority of the time. Player-vs-player (PVP) in World of Warcraft tends to have the same team layout in their 2v2 and 3v3 arenas making the meta-game predictable after playing for so many iterations.
Developers do try and balance these problems, but re-balancing takes a long time to complete. When you make something (gun, character, class) weaker or stronger, it changes many other aspects of other classes. Which character’s are good to support them, who does the original character do well against, who does well against this character. Many aspects change because of small changes that the developers make to try and re-balance the game, making things that were perceptively weaker -> better and making things that seemed overpowering -> weaker.