Emacs won't allow you to set multiple marks in the same position, it's just going to activate the current mark. Hence your reproduction recipe can be simplified to:

  1. C-x C-f foo
  2. C-SPC => Mark set
  3. C-SPC => Mark deactivated
  4. C-SPC => Mark activated
  5. C-SPC => Mark deactivated
  6. C-SPC => Mark activated

See how you're not getting "Mark set" any time after the first message?

Maybe a couple of sentences should be added to the manual regarding this behavior, because mark ring is often a source of confusion for the new users.

Also note that the manual recommends you deactivate the mark before trying to jump to it:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Setting-Mark.html

"Instead of setting the mark in order to operate on a region, you can also use it to remember a position in the buffer (by typing ‘C-<SPC> C-<SPC>’), and later jump back there (by typing ‘C-u C-<SPC>’)."