I believe that’s how it’s supposed to work? Clicking on a topic in a list takes you to the first unread post*, not your previous position. You can go back to the spot you left using browser’s back/forward navigation.
(* – there are settings, that slightly change that - i.e. navigate_to_first_post_after_read
category setting that, if enabled, navigates you to the first post if you don’t have any unread posts left in a topic)
Yup, scroll to the “last visit” marker is a bit buggy. It won’t work if there are any small-posts (like “X months later”) or deleted posts right after it. I’m working on a fix.
This is bug is tracked in Discourse jumps back 20 posts in post history when navigating to new topic.
It might have been fixed in FIX: Correctly reset `controllerReady` prop by CvX · Pull Request #18727 · discourse/discourse · GitHub