That way was chosen because it fit the current user privilege mechanism. If it was done some other way it would have vastly increased the complexity of the code for very minimal benefit. Selecting everything is never necessary, just pick the "all pages" privilege and a maybe ssh and whatever else someone needs. We have never recommended selecting them all and it's never been necessary. You also never, ever need to edit the group permissions for the admin group, it has all access by default. We don't lock it down because there may be some unforeseen need, but that is also a bad practice.
We can only go so far to prevent foot-shooting.
As for regaining access, the config can be edited by hand at the console using viconfig, or you could use scp to fetch a backup copy of the config and then edit out the privilege, scp it back and restore it from the console.