Here are my completely random thoughts:
Anything you can do with a self switch you can do with a control variable.
No, that is completely wrong. The main reason for self-switches are the fact that they are event-based (stored differently for each event) while the variables are game-based (identical throughout the game).
For example, make a treasure chest that gives a number of gold or an item, and use a self-switch or a variable to mark it "looted".
Then copy a dozen of those events on one map.
In the case of the self-switch, you can loot all chests independently from each other and gain their content whenever you want.
In the case of the variable, you loot the first chest and all of them become "looted", you would need to change the variable used in every event (and use up a lot more variables, because you'll need one variable for each chest.
That is on the other hand the reason why you can't simply add an unlimited number of self-switches to the editor: it does not need the RAM for that once (as with general variables or switches), it will need to reserve the needed ram for every event (which means you need the RAM for one switch multiplied by the number of events in the game/on the map), even if only a few events really need that additional self-switch...