How difficult is it to update a program from within that program?

There is a whole security issue, too. Updating an application means connecting to the internet, downloading a verifying an executable or a patch, and running that executable with permissions to install software. That is vastly beyond the permissions that most applications would need otherwise. Do you really trust every single program on your computer to have that kind of power?

That’s why installers/updaters like apt and Google Play are a better model for updating then having each program update itself. A small number of trusted programs get the “god permissions” instead of every program.