Good points.
(b) The actual data (jpeg, mp4, 3d mobdel, etc) is usually stored on a system like https://ipfs.io and not on the NFT chain itself.
(a) I think the optimal solution would be that it is in the interest of publishers to have their assets used in other projects. This would give them more value, and the NFT creator usually charges a transaction fee on their assets (every time something is sold on the secondary market, a percentage goes to the creator). Another option would be for the indie developer to assign these items to their own items. For example, AAA studio sword xy is assigned to indie game sword xy. Of course you can't manually assign zillions of NFTs, you would probably do this in tiers and I would imagine there would be services built around that. This would eliminate the IP problem as far as I know, and would just mean that owning NFT xy unlocks a feature/element in the game. This would of course be interesting for official collaborations between publishers.