Hm, if a phone is to support a factory reset feature at all, everything it's bundled with needs to be there somewhere in read-only memory.
And everything I've read says that disabling an app and removing updates removes it from everywhere _except_ read-only memory.
I don't think there's any other way to do this at all, unless you want to give up on having a factory reset feature entirely. I think the only problem is that Android doesn't just call it "uninstall" and hide it better.
One option is to require an internet connection for the factory reset process.
One could imagine a setup where the system is rebooted into some kind of safe mode where only manufacturer-signed packages are executed, all other packages are deleted, and then any uninstalled original packages are re-downloaded from a manufacturer designated server, or even peer-to-peer to save internet bandwidth.
Considering the rare use of the factory reset process, and the large cost associated with exabytes of flash memory across all devices worldwide, this seems a worthy tradeoff.
And everything I've read says that disabling an app and removing updates removes it from everywhere _except_ read-only memory.
I don't think there's any other way to do this at all, unless you want to give up on having a factory reset feature entirely. I think the only problem is that Android doesn't just call it "uninstall" and hide it better.