I am new to the world of NFTs and I find very hard to understand how the ethereum blockchain enforces their "uniqueness".
As far as I know, smart contracts implementing the ERC721 interface can work with NFTs, basically, for a given ERC721 smart contract tokenIds must be unique and can be assigned to a single address. What I understand by that is that for a given smart contract instance (with its own address), the same tokenId cannot be owned by two different wallets, NFTs are thus unique for that particular instance of a smart contract (Smart contract address + tokenid -> Unique), in other words, the Dapp (a video game for instance) based on that smart contract will be able to keep track of who owns a given game asset (represented by a NFT).
My problem is that, the tokenId (or NFT for this purpose) only means anything to that particular Dapp, it is the Dapp that "knows" what that tokenId actually represents, which is perfect in the context of video games and similar, but is a problem in the context of real-world or even global digital-items (like a tweet) ownership. What is preventing someone from creating an NFT in two different ERC721 contracts and "attaching" them to the same real world/digital asset? The NFTs would probably have different tokenids in each contract but they would both represent the same item, meaning that the creator could sell that item twice, and none of the buyers could actually prove its unique ownership...