Right now we use JSON escaping rules for strings rather than CSV rules.
Proposal: Strings (and equivalent types like symbol) and numbers get printed directly in CSV format. Other types like objects or arrays get converted to JSON then run through the CSV escaper so they will be valid JSON strings after an import.
Should Code be a String equivalent or JSON?
Should OID's be emited as regular hex strings or csv escaped ObjectID("abcde"). The later preserves the distinction between strings and OIDs, but it will make a terrible key if trying to share data with another DB.