The solution that I have implemented is to create an “Adapter” contract that allows NFTs to control 8004 registrations. It is specified as ERC-8217 and is now supported by OpenSea for NFT collections. More about it at:
https://Adapter8004.xyz
and ERC-8217:
Also metadata storage is specified with ERC-8048 for NFTs.