The "private" attributes are just like regular attributes, they can be accessed just like regular ones, they are just not output. So they live with the element they are attached to, and disappear when it does, either when the whole twig element goes out of scope or when the element is deleted/purged or flushed.
I usually use private attributes to store information that is attached to a part of the tree, what you call a scratchpad I guess. But I have also used it to store data for the whole document, as an "official" way to store attributes in the OO sense. This way I know that even if the author changed the underlying implementation of the twig this method would still be valid ;--)