It could technically, but it might require so much recoding and testing they might not want to bother, it’s not as simple as just adding a new character in to one of the current slots. Trying to add new slots themselves might cause game breaking bugs to appear throughout the game.
To give an example of how so one seemingly simple thing could pose such a headache, look at blizzard and how they supposedly couldn’t do much else with the default backpack in WoW. Supposedly trying to just add more inventory slots to it in WoW was difficult because it caused ripple effects throughout the entire game for a characters inventory. It was just easier to allow players to get larger bags in the secondary slots because those were coded to let players remove and upgrade them with larger ones.
Sounds like bad programming. Can't say I quite understand why it would considering things like inventories and multiple characters I would assume use some kind of an array to reference whatever object. In the case of smash bros, I would assume a character like Mario would be assigned something like 1. Initially sure, they would set it to a finite range like [1-10], but even that range could be extended. If the foundation was solid, I would assume coding wise it would just be a matter of associating the new character to a different number or variable.
So for example if I'm making a game, and each character is assigned a variable as reference, it seems like it would make sense to reference everything back to an array or range of [1-x], then making x= to the number of total characters currently in the game. So in the end all of mario's assets are referenced by the variable "1", Donkey Kong "2", Samus"3", etc..
Someone correct me if im wrong, since its been awhile, but if your foundation is flexible, these kinds of additions should be easily implemented.