I am using ERC165Upgradable contract and whichever contract inherits from it, overrides
supportsInterface if they wish so.
If the contract needs to be updated(needs some feature), dev updates
supportsInterface function to include one more interface check and also adds the feature in the code.
Why would I ever need to inherit from
ERC165StorageUpgradable ? It has a mapping that doesn't make sense. If the contract needs to have new interface registered, it means it needs to have the new feature code added to it, Just calling
registerStandard is not enough because it means you are registering a new interface at any time, but the contract doesn't contain the code for this new feature interface.
I'd appreciate the reasoning behind this(what's the strong argument) to use