Conditional Get: If I understand, this is basically a way to say "if the resource has changed, send it, otherwise response with a 304" - However, you still need some sort of data-query to determine if the resource has changed (And you need all the relevant data at hand to compute a change and generate the etag to compare against the client provided etag - So this gets to my question of if this saves bandwidth over actual processing/querying time, in terms of performance gains.
I could envision where an etag is generated based on "last update date" of a specific resource (data table row), and so save time from potential complex-queries. However, descriptions of ETag's I've seen often talk of them as part of a "cacheing" mechanism, and that I believe is where my confusion on its benefit has come from.
Lost Update Problem: This seems to be where ETags shine then, as they provide a real, functional benefit (Altho not necessary a "cacheing" benefit).
Do these distinctions/questions I'm asking make sense?