When I mark a buffer for saving (S marker in the 3rd column), the unmark does not clean the flag.

 This happens because the unmark does simply so:

    (tabulated-list-set-col 0 " " t)

and the "S" marker is on the 3rd column, and it's not cleared.

Now I discovered that in fact "Unmark" command should be called "unmark the deletion".

Info page, 19.5 Operating on Several Buffers, quote:

`u'
     Remove all flags from the current line, and move down
     (`Buffer-menu-unmark').

This is not true. Either press "g" to revert the buffer, or re-define "Buffer-menu-unmark" to really unmark the buffers.