As I see many pages on Discourse remember the scroll position.
But the categories page opens on top every time. And in case when it’s the main page and there are a lot of categories there - it provides not the best UX.
I believe this could be done with a theme component. I’m not sure how technical you are but I can give a basic outline of how this could be accomplished.
Using the onPageChange API, you could check to see if the current page is the categories page. If so, check localStorage for the user’s last scroll position on the page, and scroll to that position if it exists. At that point add an event listener to the window to store the user’s scroll position in localStorage. In the onPageChange, if the user is not on the categories page, remove the event listener.