Why is Session State disabled in SharePoint by default?
Does it not make use of session in any feature of SharePoint at all? If so then which features require session?
Sharepoint kinda does it's own session management. Part of the reason it's disabled (I think ) is to keep developers from screweing around with sessions in sharepoint without knowing what they are doing and causing headches for admins. SharePoint does not automatically remove old session state records from the session state database tables. Performance will degrade if you are using sessions without proactive action to regularly purge expired sessions.
Here is a relevent quote from From the patterns & practices SharePoint Guidance:
Session State Management in SharePoint SharePoint relies upon the ASP.NET session state framework for session state. The ASP.NET session state infrastructure includes session state providers that allow you to implement different store partitions for session state information. For more information on ASP.NET session state providers, see Session State Provider on MSDN.
SharePoint implements its own session state persistence mechanism. A partition resolver redirects the SqlSessionStateStore to the SharePoint session database based upon the session ID. SharePoint creates a session state database when the primary Shared Services Provider is installed. For information on configurating the primary Shared Services Provider, see Configure the primary Shared Services Provider on TechNet.
Microsoft Office Forms Server and Microsoft Office Project Server rely upon ASP.NET session state. Excel Services relies upon session state, but tracks session information directly within the Excel Services Shared Service Provider (SSP) rather than relying upon the ASP.NET session infrastructure.