Nicholas Allen blogs about the layered architecture of WCF and specifically about how services can be configured to start just-in-time to process the first message.
He then posits about maintaining state between instances of the service startup, whether that be in IIS or a Windows Service. He suggests a possible expansion of the hosting layer to make use of ASP.NET Session State.
I would argue that this is only an option if ASP.NET session state were [configured to persist in a database](http://www.microsoft.com/technet/prodtec hnol/WindowsServer2003/Library/IIS/ca617e91-803b-4448-89c0-e47b355cfeb9.mspx?m fr=true). This becomes critical once you decide to scale out your service in a web/service farm that is load balanced. In a load balanced, or otherwise distributed scenario, you want to store state information in a decoupled storage mechanism that all web and/or service instances/servers can enter into communication with on an equal footing (so server 1 can access session state previously updated by server 5, driven by some kind of session key).