Hi Jake,
My understanding is that @sebastian.iancu and the other designers of the REST API tried very hard to do the design ‘correctly’ - exactly as you suggest.
The problem I see is that this is not actually how most of the real-world rest services actually operate. In that sense I am a good example of a naive web-app developer. I had never seen a 204 before (for a valid response) and the Rest client library I was using (fairly mainstream) made it very hard to extract a header tag in the response, compared to parsing the response body - trivial.
We might be in danger of doing the ‘right thing’ in IETF terms but confusing the rest of the world who have never head or seen 204 being used for a successful transaction.
Thanks for the references. My suggestion is that we construct some simple very minimal ‘default’ response bodies - essentially the ETags. If people want to go super-minimalistic they can set return=minimal and get a 204.