I think you should be using `replace` more judiciously. IMO its primary use is redirecting from some kind of invalid state/URL, i.e. when the user does not want to ever go back.
For all valid states/URLs, users expect that the browser's back and forward button work as expected, and that they can save or send that link to others.
For all valid states/URLs, users expect that the browser's back and forward button work as expected, and that they can save or send that link to others.