A variable is cleared when you are not using it and the garbage collector is ready to clean it up.
This has nothing to do with session variables.
Session state is nothing more than memory in the shape of a dictionary or hash table, e.g. key-value pairs, which can be set and read for the duration of a user's session. This dictionary is linked to the session.
Once the timeout expires, ASP.NET terminates an inactive Session and disposes of the state for that session.
Thus the dictionary is destroyed.
Thus from your question's point of view, the variable and session stated are independent things and one being disposed does not mean the other has been disposed.
These are some great links - http://msdn.microsoft.com/en-us/magazine/cc163730.aspx