For their “classical” way of selling, the NFT should not leave your wallet, before it is bought.
But for the “smart contract” way, the NFT has to be given to the contract beforehand, because that is how smart contracts work: Both sides give their part of the deal in and the contract ensures that both sides get the agreed result out.
it’s fine, on cnft you will have a wallet assigned to your account and you will need to move the assets there before to put them on sale (but you have the control of the assets)… I used it few times