I am seeing two potential issues though...
I'm not sure I follow you. From what OP has said, his outputs are already in Whirlpool:
If you have a wallet with say >20 UTXOs that were previously mixed using Whirlpool (resulting in equal amounts), how can you best move then to another wallet.
Given that, and given he wants to move them from Whirlpool to another wallet, then the "mix to external xpub" option is the best option.
You are absolutely right. I deleted my post, to avoid confusion. In that case, there is no better option than the one you mentioned above.