You cache non-logged in users to start with. And then you cache based on sessions (logged in users) because you don't really need to show fresh votes on each visit and right away (admitted to it in the article). Plus there's lots of room for ESI.
Logged out users see a "snapshot" of the page updated every so often.
And I really don't think that caching pages per session would really help with their load all that much. Why not just use HTTP cache headers at that point?
Plus while you don't really need to show votes ASAP, logged in users will want up to date comments.