Remove the need to cast event args to get relevant information on content events. For instance on the move event you need to cast the ContentEventArg to MoveContentEventArgs to get the descendents
Create a new event for if the content is thrown into wastebasket. This is special case of the move event today which is not very obvious and leads to mistakes.
Make it more clear what content is actually affected. For instance the delete event gives you the content link property but that doesn't point to the content that is actually deleted but to wastebasket. It is possible to get the affected content that was deleted if you first cast the event to the DeleteContentEventArgs and use the DeletedDescendents property but that is pretty far from obvious.
Create a new event if a content is affected by a change to url on a parent. This is tricky to solve today but easy to create a new event for.
Make ContentSecuritySaved event part of the IContentEvents interface. This is now pretty well hidden in the IContentSecurityRepository interface. But it is a very relevant content event that you will likely want to handle together with the other events.
Create a combined new event that handles if content has been changed in any way including url for parent, access rights, published, moved, thrown into wastebasket. That will simplify creating custom logic like indexing content a lot.