CouchDB (as of 1.4) seems to ignore the "Content-Encoding" header on requests, and just parses the request body with no decoding. This causes incorrect behavior — most often it tries to parse the encoded data as JSON and will fail and return 400.
CouchDB should either decode the request body (e.g. unzip it), or else return a 415 status. Decoding would be quite useful: requests with large JSON bodies (like revs_diff or the POST form of all_docs) can have their size cut in half by gzip encoding.
HTTP 1.1 spec for Content-Encoding: