Dummy change addresses for TX4/5
Currently the TX0/TX1 transactions are normal looking bitcoin transactions, N inputs from a wallet to 1 output and 1 change.
The TX4/TX5 spends out to a single address; either sourced from the relevant mixdepth in the joinmarket wallet, or a destination if specified.
It would be better to have two outputs, with one being a "dummy change". This should be optional but should almost certainly be the default.
This could be also be handled by Alice coinswapping more bitcoins than she intended to send and sending the change in cooperative payout TX4/5 back to her. e.g. she wants to send 1btc to an exchange, she coinswaps 1.5btc and has 0.5btc - fees going back to her.
Or as you say, she could request two deposit addresses from the exchange and use them both.
For improving privacy a bit, this idea about change address values is relevant https://github.com/JoinMarket-Org/joinmarket/issues/28#issuecomment-291118508. So one of the values could sometimes be a round number, or a round number when converted to another currency.