It seems to me like MARKER does the same thing as FORGET. The only difference is that you need to set it up in advance. I can confirm the behavior is as stated in Starting Forth [1] with Gforth 0.7.3. Here is the excerpt:
The word FORGET looks up a given word in the dictionary and, in
effect, removes it from the dictionary along with anything you may
have defined since that word. FORGET, like the interpreter, searches
starting from the back; he only removes the most recently defined
versions of the word (along with any words that follow). So now when
you type GREET at the terminal, the interpreter finds the original
GREET.
FORGET is a good word to know; he helps you to weed out your
dictionary so it won’t overflow. (The dictionary takes up memory
space, so as with any other use of memory, you want to conserve it.)
Some Forths do not have FORGET. In that case you need to plan the
forgetting in advance, e.g.:
MARKER -work
defines the null definition -work to mark the current system state for
you. When you execute -work at some later time, the system state is
restored to that in effect when -work was defined. In particular, all
words defined after the marker word -work are completely removed from
the dictionary.
[1] https://www.forth.com/starting-forth/3-forth-editor-blocks-buffer/