If you look in the body of the page where the cart contents are displayed, the code there is standard WA eCart code and not dependent on those if/then statements you pointed out. Disregarding the custom "Session Timed Out" message, the cart contents are simply blank on some occasions. The logic there uses isEmpty(). When I comment out the isEmpty statement, the cart contents will appear as they should.
I think you might be onto something with the session garbage collection, but I doubt the host (BlueHost) would admit to having a problem. My client just informed me that they remember BlueHost doing a server upgrade or maintenance of some sort November 25th, and that's when the problems started happening.