We should not let rabbitmq.EXCHANGE_NAME be used as the override destination for the producer. As this can lead to the problem with
Will route foo -> foo instead.
So if the end user want to use a header to route to another destination that configured in the endpoint uri, you would need to use some other header for that, so rabbitmq.EXCHANGE_NAME becomes "read-only" and dont affect anything. This is also how JMS component works etc.