I'd view the conditional view processing as complimentary to the cache engine; you can't have too many layers of caching really. Also, conditional view processing can save bandwidth since unmodified responses don't need a body. Bandwidth is a lot cheaper now than just a few years ago, but for some folks this is still a bug deal.
Also, one important "feature" you get for free when using conditional view rendering is that upstream caches -- Varnish, Squid, etc. -- will perform better as well.
So really this new feature is about improving how well Django speaks HTTP, not caching per-se.
Yes, and it allows fine grained control of the conditional view logic within the view as opposed to the generic and coarse default etags/if modified since handling.
Another instance of Django making the simple, simple and the difficult possible.
Also, one important "feature" you get for free when using conditional view rendering is that upstream caches -- Varnish, Squid, etc. -- will perform better as well.
So really this new feature is about improving how well Django speaks HTTP, not caching per-se.