Other than because session storage is session-global to more than one page, why would you ever want to use the viewstate to hold values?
It seems kind of ridiculous
Not an answer to your question but one of your assumptions is incorrect.
Session IDs can be passed in the URL. Session does not require cookies.
http://msdn.microsoft.com/en-us/library/aa479314.aspx