What happens to FUNCTION! arguments and locals when the call ends?

Oddly enough, I don't recall knowing that UNBIND even existed - so maybe my life can be easier. It's an interesting question. When are the bindings of returned words and blocks important? What should be "best practice"? I worry that doing Unbind/deep before returning will create collateral damage to bindings not part of the function's mission.

In thinking about the main thrust of your question I realised I'm not entirely clear on what a frame actually is. I have read Relative Binding and FRAME! Internals. Is there some documentation that defines FRAME! at a Rebol language level?