The whole purpose of getMulti.exists() is to check the existence of an element, so it should not throw if the element does not exist, out of bounds or not. This is especially annoying in the case of a dynamic number of documents.
The contentAt method is legit to throw, even though returning undefined is a perfectly valid option (because it's an illegal json value) but there is the case for binary content that could be decoded as undefined