I guess the question belongs to the UDC proposal, not here. In the context of this thread, I take the broader question: why deployer contracts instead of implementing deploy
on accounts?
It’s a design choice to minimize account responsibilities in the spirit of keeping them simple as a proxy of safety (*). Under this mindset, adding a deploy
function didn’t seem mandatory, as external contracts might fulfill that role, such as specialized factories or the UDC.
Account developers can always implement deployment functions if they want so, deployer contracts support the ones that don’t.
(*) not always true, hence proxy