A message bridge is typically used when store-and-forward semantics are required. For example, if the remote destination may be down but the sender wants to ensure the message is stored locally and eventually sent later when the remote destination is available again.
In general the bridge is less efficient than sending messages directly because of the extra "hop" the message must take. Furthermore, the bridge is single threaded which means it would suffer in a performance comparison to concurrent producers. If once-and-only-once semantics are required then that will further hurt performance due to the extra XA transaction required.