If I understand the situation correctly, an object's ETag is equivalent to its md5 checksum if it was uploaded in a single part and less than 5GB in size, but is calculated differently otherwise. However, the getETag javadoc says that the ETag is the same as the md5 checksum, and the getContentMD5 doc says that this will be the same as the ETag. Is this documentation out of date?
Yes the javadoc is out of date. We will fix this.
This documentation has been improved and will be available in our next release.