What about if you use register windows or special renaming of architectural registers to internal ones? https://en.wikipedia.org/wiki/Register_window
Then think of registers as just part of the fetch & store pipelines for staging operations on stack values.
Forth goes all in with this approach.