Edit: obligatory explanation (thanks mods for squaring me away)…
What you see via the UI isn’t “all that exists”. Unlike Reddit, where everything is a black box, there are a lot more eyeballs who can see “under the hood”. Any instance admin, proper or rogue, gets a ton of information that users won’t normally see. The attached example demonstrates that while users will only see upvote/downvote tallies, admins can see who actually performed those actions.
Edit: To clarify, not just YOUR instance admin gets this info. This is ANY instance admin across the Fediverse.
I had to run an experiment on this one.
It appears that changing you vote causes the old vote to be completely deleted from the database and a new vote cast and propagated.
Edit: The above description is what happens in the COMMENT_LIKE or POST_LIKE table HOWEVER the ACTIVITY table reflects both actions, which makes sense since it’s a complete transaction log. So, it’s a slightly more complex query but the history is maintained.
However, that’s not really any better for privacy. There’s absolutely nothing preventing someone from logging a history of the changes.
Upon further experimentation, the ACTIVITY table maintains both transactions so… there you have it.