Editing the attribute def name inheritance will delete and re-add the inheritance for the attribute def name being edited. This not only causes unnecessary churn, but it also makes point in time confusing (because the users would have lost a lot of permissions and gotten them back). Also, since the whole thing is not done in a transaction, if there's any failure in the middle then you'll be left with missing inheritance.
Same thing for action inheritance.
Unable to remove all attrDefNames/actions that imply or are implied by a given attrDefName/action.
Refreshing the action edit page quickly will cause missing results.