Vlad,
>...(natural purpose of session object - to use together with forms).
I'd say the natural purpose of the session object is to better provide for encapsulation without any thought about whether it's used with forms or without. Session-based objects can easily be called from strictly procedural code that has no form associated with it, so I do not agree that its main purpose is for use with forms.
Objects based on Session can easily be called from other objects, such as a COM server that instantiates multiple business objects in one of its methods. No forms involved there.
Session is also very useful for encapsulating blocks of old-style procedural code (which perhaps may open tables in certain work areas) as a first step in fast migration of older projects.