Hi,
Does this really match the expectations of the users? Wouldn't they be surprised, that if they remove a product asset for product A, that this asset is also used for different products? Especially if they are not aware that they influence other products as well?
To assess the impact this requirement, I would recommend you to list all different cases:
* an asset is added to a product, and the asset is not yet available in the system
* an asset is added to a product, and the asset is already available in the system
* an asset is removed from a product, and the asset is also used for other assets
* (and potentially more)
and define how the system should behave; also consider the various users in this case:
* the user who performs the activity
* a user who has worked with that asset before on the system and added it to an asset.
* ...
Then match this to the ootb capabilities of the AEM and understand where you need to add a customization so the system behaves as you want.
From my point of view this requirement is highly risky, and not only from an implementation side, but also from a management point of view. Not to mention the problematic to train all users dealing with it.