Blocks have methods user_can_addto and user_can_edit which let the block determine whether the current user can do certain things (perhaps via a capability check).
At the moment, user_can_addto only controls whether a user can add an instance of the block. However, a user who is not allowed to add the block can delete it. Thusn, if they made a mistake, they can't undo the action.
I want to change it so that user_can_addto controls both adding and removing.
Similarly, I want to change it so user_can_edit controls the ability to show and hide the block, as well as the ability to access the configure instance form.
By default, both these methods return true, and no core blocks override them, so making this change should not break anything, and I think it makes the functionality more logical. Therefore, I think I am going to go ahead and check this in.
I'll post in the block and general developer forums so people know this is going on.