Whilst not entirely wrong its not just about programming.
For your solution to work data would need to be held and processed for each player, this in turn creates a storage and processing overhead. Not to mention extra data being pushed back and forth to hundreds of thousands of clients which would slow down your game as it checks each time it loads if you should be seeing x or y. Much of this needs to be done at the back end so as not to put the tools on the client for cheats to change their roster etc. This all costs money, and performance metrics will be also be a factor in this decision making.
Its the same reason presumbly that we can't store more mods, more loadouts, replays of battles or even live battles as some have suggested.
Tldr: Its not as simplistic as you think it is.