The behaviour would be more error-prone: when you take a codebase and compile it for an earlier version of Python, some slots would be silently ignored. I’d much prefer only ignoring things if the user code explicitly says it’s OK.
Currently, all slots are “mandatory”. To preserve the behaviour, when you convert from “old” slots to PySlot, all of them would need the flag.
OK. This one can be added later, in the version that needs it.