The erc20_safe_transfer uses ASSET.address as address paramater no matter what adress is passed to the funtion.
V3 issues shares to itself that don't actually belong to itself while profit is unlocking. So I believe there should be a check of "assert token != self"
https://github.com/jmonteer/yearn-vaults-v3/blob/master/contracts/VaultV3.vy#L949-L959