Yes your use case is appropriate. The implementations for both DataContractResolver and IDataContractSurrogate are done by the user of the DataContractSerializer. If you didn't implement and configure them, there are no threading issues (otherwise the MSDN documentation would be plain wrong).
I would even go further and assume that MSDN only ruled out the use of DataContractResolver and IDataContractSurrogate because they could be done in the wrong way (i.e. not thread safe). But there's unfortunately no evidence in documentation for that.