Bookmarks protection is too harsh
If the server side repo has existing bookmarks, but isn't configured to work with bookmarks, and if a user has new values for these bookmarks in the local repo, a push not even mentioning bookmarks gets rejected.
This has been experimented by @timeless developer on hg-git today.
The reason is that bookmark moves are implicitely pushed.
Heptapod should not refuse the push in that case, and just output a message saying that the server-side bookmark hasn't been updated. The refusal should be for bookmarks creations only.
Oh, and by the way, the bookmarks rejection message should mention which bookmark this is about. That would help.