Marks are used as stable pointers into a text buffer. Cursor is one example, but marks are often used for internal (not visible to user) reasons too. Suppose there's a mark pointing in to the middle of the following word (|
signifies the mark, not a character in the text):
foo|bar
If we insert text "baz" after "foo" and before "bar" the mark will behave differently depending on the gravity.
For mark with left gravity:
foo|bazbar
With right gravity (like the cursor):
foobaz|bar
A good usecase for left gravity is a mark that points to the beginning of some line of text. With right gravity, text insertion could shift it to somewhere else, with left gravity it will always point to the line beginning (provided that linefeed before is not deleted, of course).