HornetQ won't remove temporary destination when their corresponding connections are cleaned up.
This is what the JMS 1.1 Spec says :
4.4.3 Creating Temporary Destinations
Although sessions are used to create temporary destinations, this is only for convenience. Their scope is actually the entire connection. Their lifetime is that of their connection, and any of the connection's sessions is allowed to create a MessageConsumer for them.
Temporary destinations (TemporaryQueue or TemporaryTopic objects) are destinations that are system-generated uniquely for their connection. Only their own connection is allowed to create MessageConsumers for them.
One typical use for a temporary destination is as the JMSReplyTo destination for service requests.
Each TemporaryQueue or TemporaryTopic object is unique. It cannot be copied.
Since temporary destinations may allocate resources outside the JVM, they should be deleted if they are no longer needed. They will be automatically deleted when they are garbage collected or when their connection is closed.