let me start first with what we want to achieve for the end-user to get mass-adoption:
being able to create for free an immutable account
being able to receive for free assets linked to an account
being able to send assets linked to an account and pay potentially some fees during the transfer
being able optionnaly to recover ownership of an account even if the user lost its original private key by trusting some friends or some KYCs providers or both (mimic the current forget password feature available on 99.99% of websites)
being able to manage the security of an account and for example switch from 1 sig to multi-sig to authorize transfer of your assets.
In the current environnement, you can achieve 1,2,3 with Bitcoin or Ethereum easily. You generate a public/private key for free and you can start receiving or sending some assets.
If you want to achieve 4,5, you will need to delegate the security approval of an asset transfer to a smart actor contract.
In the current environnement, address of smart contract are necessarily different of the first original public address a user create freely offline. Which means that at some point, for a user to get additionnal property such as 4) and 5), he will need to move its assets into its new address and also tell all his friends that his address to receive assets has changed. Of course it is doable, but if you really care and think deeply about mass-adoption, a normal user will never do that, it is way to much complicated. You want to provide 1,2,3,4,5 without the need to change addresses for a user.
Another solution is to use ENS to achieve address redirection but i disagree with this approach because it adds another layer of complexity and cost not necessary to achieve account immutability.
From what i understand, the current limitation of the ethereum protocol could be easily change: we could deploy a smart-contract to an empty specific ethereum address if the user can prove that he owns the private key of this specific address.
I believe this is the right way to improve our goal to have an account immutability which will get the property 1,2,3,4,5
I hope it helps