I believe that SETDELEGATE should create its own impact, like SELFDESTRUCT, instead of relying on a factory, if the factory is manipulated, a whole series of wallets based on it will be affected. It’s better for a wallet to upgrade based on SETDELEGATE on the implementation contract it delegates to, this creates an ERC-7229 account type at the protocol level.
Its behavior is redefined as follows: In a non-static execution framework, when executing SETDELEGATE(target), set target as the authorized address at the current address. If a series of consecutive authorizations are performed, only the last authorization will be applied.