mind sharing your etags idea - i.e. how it will help you to not generate content twice on Python side of things? or you mean transfers only?
With that last updated time as a seed for the etag value for dynamic pages, it means when the cache control public header times out, and a request arrives then in the request handler i can do the orm query, and then short circuit out before template rendering or page transfer if the last updated vs etag match.
I hope that rubbish attempt at describing made sense :-) basically i like this approach because it works even for logged in per-user pages that don't change much. I know there are slightly faster approaches for non-logged in pages but i just handle everything with the same pattern.