I can assure you that event, message and timer subscriptions for existing process definition version are removed and updated when a new version of a process definition is deployed.
a snippet from the deploy code:
Feel free to take a look at the code yourself, but to summarize.
Event and message subscriptions are queried against the "latest" deployment (i.e. the one currently deployed) and associated tenant ID. The resulting list is iterated over and the subscription is deleted.
After each step, the new subscriptions for the process definition being deployed are added.
Not sure what you mean by "not all event subscriptions", perhaps you can provide a specific example (preferably as a unit test).