No - as it encodes entities including ampersands... This is why I am escaping the url before adding the query arg. However I understand that it could potentially be modified between me doing this and outputting it.

We could use esc_url_raw( $url ) although its not intended for display...

Alternatively I could esc_url and then 'unescape' ampersands...