The confirmation table for cross-subnet move_stake, transfer_stake, and swap_stake shows a received amount based on linear price math (alpha * price), but the actual on-chain swap goes through two AMM pool legs with slippage. The sim_swap runtime result with the real amount is already fetched but never passed to the display function.
Also, the cross-subnet path always subtracts extrinsic_fee from the received amount even when a proxy is paying it. The same-subnet path has the if not proxy: guard but the cross-subnet path is missing it.