Document.merge was added for internal use in MongoCollection.createIndexes, but was marked public.
Its behavior is not consistent with other public API methods for modifying documents, in that it doesn't verify that a key doesn't already exist in the document before adding it. This makes it very fast and fine for internal usage whn we know duplicates aren't a problem, but it's not very safe for users.
Users can already safely accomplish this in this public API by doing something like:
Therefore, there is no need to expose this and we should make it internal rather than public.
Additionally, it appears that the only time bson_concat returns false is if the merged documents would be over the max allowed size for a bson_t. We shouldn't rely on that always being the only reason for a false return value, but we can mention in the error message that the issue is probably related to document size.