Thanks for the pointer! The documentation is rather scarse...
They are indeed session or transaction-alive. They seem to be user-private, which is good. However they are text only, casts are needed in practice as shown by your example, and I find the syntax quite unfriendly for interactive use. I'm not sure about performance.
With some simple getter/setter functions you can get better comfort.
For not text variables you needs one cast more - probably only "date" "timestamp" can be noticeable slower.