JMS request goes from A to B to C and the reply back from C to B to A.
The JMSCorrelationID assigned by A is passed along to C via Camel message headers when useMessageIDAsCorrelationID is set on B's request. B is expecting the JMSMessageID to be used as JMSCorrelationID on the reply but since the JMSCorrelationID is actually provided, C could decide to give precedence to the JMSCorrelationID rendering B's message selector to not match.
The only case this would work as expected is when C is also set to useMessageIDAsCorrelationID to always prefer the JMSMessageID. But consider situations where C is not under your control and/or implemented in a different technology than Camel.
I'd argue the JMSCorrelationID should be made null when the useMessageIDAsCorrelationID is set on a provider.
I've created an example project to demonstrate the behavior: https://github.com/alvinkwekel/camel-example-jmscorrelationid
This issue seems to be closely related to https://issues.apache.org/jira/browse/CAMEL-2249