Keeping things simple is really a big concern. The more complex things are, the more likely they are to break, or be exploitable due to edge cases and the like. This shouldn't be something that happens often, like rebellions. But when it does happen, and it breaks, then there is a whole lot of damage that can be done by a minor bug.
The more conditions, exceptions, options, and controls any given proposal has, the less likely it is to ever get implemented due to the sheer quantity of effort required to program it, test it, debug it, and maintain it.