I think that ! means (potentially) dangerous, requiring special attention.  Destructive methods don't need to use ! unless they are dangerous/less-expected, IMHO. The ! methods leave unfinished BSON which if used without finishing will be catastrophic.