While the driver should add an ID in these cases, I don't think that its correct that the driver should mutate the document you have a pointer to.