This is possible and, in my experience building them, the norm. SPAs have routers and update navigation state, including history for browser Back/Forward
It's the norm to try to re-implement browser functionality in JS but it is very far from the norm for the re-implementation to work as well and as reliably as the native browser functionality.