All instances of Value or a class derived from Value are managed automatically by the MAXScript garbage collector unless marked as permanent.
The collector scans for objects to delete starts at a root set of objects scanning for internal references of objects that are not protected using the local variable protection mechanism or marked as permanent.
You can mark a value as permanent by calling the Value::make_permanent() member function. From then on the value is in the root set and will be scanned for internal references but is not eligible for collection. This operation is computationally intensive and so should not be used in place of the local variable declaration mechanism. The Value::make_collectable() member function will make a permanent object collectable again.