With the intermediary as a constructor parameter, it becomes cumbersome for a user to redeploy their account on a different target EVM without that same intermediary.
EG, Alice-Irene make a wallet on Ethereum. Irene sunsets her operation, so Alice seeks out Ivan to replace her. Now if Alice wants to port her wallet to some other chain (under the same address), she will need to initialize it with Irene's address, remove her, and add Ivan.
Intermediary per-chain
with intermediary as a constructor parameter, it's cumbersome to have the same wallet on different chains be serviced by different intermediaries.
EG, if Optimism is itself an intermediary for the Optimism ORU, and Arbitrum itself an intermediary for Arbitrum, then having the same wallet address on each RU requires a reset.
Or not
A reason not to do this is that it makes wallet spin-up a two tx procedure - deploy the wallet via factory and then setting the intermediary. Maybe this is as cumbersome as the above operations?
Maybe just deploying with a blank intermediary achieves the aims?
Two reasons to do this:
lock-in
With the intermediary as a constructor parameter, it becomes cumbersome for a user to redeploy their account on a different target EVM without that same intermediary.
EG, Alice-Irene make a wallet on Ethereum. Irene sunsets her operation, so Alice seeks out Ivan to replace her. Now if Alice wants to port her wallet to some other chain (under the same address), she will need to initialize it with Irene's address, remove her, and add Ivan.
Intermediary per-chain
with intermediary as a constructor parameter, it's cumbersome to have the same wallet on different chains be serviced by different intermediaries.
EG, if Optimism is itself an intermediary for the Optimism ORU, and Arbitrum itself an intermediary for Arbitrum, then having the same wallet address on each RU requires a reset.
Or not
A reason not to do this is that it makes wallet spin-up a two tx procedure - deploy the wallet via factory and then setting the intermediary. Maybe this is as cumbersome as the above operations?
Maybe just deploying with a blank intermediary achieves the aims?