I\'ve been dealing with a spate of Timeout\'s from TopicClient and I think it may be related to object lifetime and disposal.
I\'m using the TopicClient
The documentation indicates that all static and instance members of the TopicClient are threadsafe.
"Any public static (Shared in Visual Basic) members of this type are thread safe. Instance members are also guaranteed to be thread safe."
I read the quote you included as that it does specifically include the TopicClient because it says "queue, topic and subscription clients". I read that as QueueClient, TopicClient and SubscriptionClient.
For messaging subsystems I tend to use a Gateway Pattern which can be used to handle the lifetime of the object necessary to work with the messaging subsystem. In your case the Gateway object would handle the lifetime of the TopicClient, or MessageSender/Receivers.
I would ask if you have seen the more generic MessageSender and MessageReceiver classes? Using these more generic objects when sending means the client code doing the sending doesn't have to know whether or not it is sending to a Topic or a Queue, it can just send to the address and not care.