Yeah data is often recoverable by experts. But it’s too hard.
My VCS rule is that commit ids are sacrosanct. If you make a commit that commit is safe. You can do whatever the hell you want. Merge, rebase, whatever. But you can always go back to that commit.
This is kinda sorta true for Git. But that isn’t a first principle. And Git’s management of branch labels is super finicky.
Mercurials anonymous branching is a better default imho.