Unless anyone objects I will archive this thread in about 12 hours. Please continue tangent discussions in another thread if you would like. Thank you.
To be clear, this has nothing to do with âstorage slotsâ or anything specific to the $ENS contract.
All smart contracts are immutable (cannot be changed) by default. Some smart contracts implement âproxyâ abilities (like EIP-2535 sure, although that one isnât that popular tbh) that add certain mutability, but that is not the default and is usually because the smart contract is still being worked on.
Also, some smart contracts are modular. For example, ENS recently swapped out the pricing oracle smart contract that governs how ENS names are auctioned off after expiration: because those contracts explicitly granted that power to the owner of the contracts (the DAO, in this case).
Just want it to be clear this isnât specifically an $ENS contract thing, itâs a general smart contract thing.
Since I have migrated from Solana toward Ethereum, the âProgram Accountsâ in Solana are upgradeable through an âUpgradeable Loaderâ by default and you can essentially upload new contracts to the âProgram Accountâ address. This is a form of nested mutability (very similar to modular contracts); an executable program however is still immutable, as they must for smart-contracts like you said. It almost feels like a step backward
You can implement the same pattern in ethereum. The lack of it here is by design.