Here are some insights in this matter; I'm probably not 100% complete but it should at least help a little.
Downvotes on answers cost you reputation, so this basically means that the public can't see which posts you downvoted. As you mention, this is ... useful ... to protect against revenge downvoting.
When such an answer is deleted, you get your reputation back. It makes sense that such an event is private as well.
Downvoting a question doesn't cost you reputation, so it's not a reputation event. If one of your posts (questions/answers) gets downvoted, it will be shown as a public reputation event.
However, not all events regarding deleted posts are private. For example, on August 13th, 2015, I received 45 reputation for an answer on Stack Overflow which was later deleted. You can check it here; it links to this answer (SO 10k only):
How can I get the values of all the boolean properties in a C# class using reflection?
Note that I get to keep that reputation because the answer's score is greater than 3 and lasted for longer than 60 days. For posts which do not meet those criteria, like this one (SO 10k only), the events are not visible in my public profile. I'm not sure why this is, but at the very least, this prevents us (10k users) from 'searching' (downvoted) deleted posts by a specific user, which only ♦ moderators can do.
I have not seen any difference in this behaviour between self-deleted, ♦-moderator-deleted or otherwise deleted posts.