If by NFT you mean a locked native token, it is not possible to add smart contact functionalities to it later, unless you somehow remint a new one under a smart contact and somehow burn the old NFT (which might not be possible as its policy is locked).
Theoretically, you could mint some NFTs now and lock them later in a smart contract that tracks which wallet has the rights to which NFTs. This is a classical account-based model implemented on a smart contract.
To lock the NFTs in a contract you have to be able to access them. So if you distribute them now, you have to convince the receivers to hand them back to you or to lock them in the contract by themselves. Otherwise, they could bypass your fees.
Maybe you can also just declare that all NFTs not locked in the contract after a specific date will lose their value. But it depends on your implementation if that is possible and you will probably lose reputation.
It’s not pointless to mint Native Assets(a.k.a. NFTs) even in the absence of smart contract backed royalties. I think keeping the asset policy unlocked for the future should be able to let you attribute future traits/capabilities to existing Native Assets even without having to have holders to return them for burning/reminting. Like an OTA update. This all theory of course. Hopefully the other brilliant developers will be able to figure out how.