In libbson, it is possible to overwrite some of the fixed-length types (bool, int32, int64, double, decimal128) in place on a bson_t using bson_iter_overwrite_[typename]. We utilize this functionality in the Swift driver to avoid creating a new bson_t when one of those types is overwritten with a new value of the same type.
Since ObjectIds are also fixed length, it would be useful if they could similarly be overwritten in-place.