Earlier quoted context omitted.
Many Android phones don't have "crap" installed on them. This is a phone manufacturer issue and not an Android phone.
It's both. Why does Android have undeletable apps anyway?
It was explained only zillion times, but I will try one more:
In android, you have storage in two partitions: /system and /data.
/system is read-only, this is where anything that is shipped with phone is stored. Outside of system updates, it is not being touched.
/data is, where user data, installed applications, configuration, etc. is stored.
To factory reset the phone, you just wipe the /data. No separate partition for factory reset is necessary, because /system due to its immutability doubles as one. Anything you configure/change/etc is stored on /data. If you disable any bundled app, whether through gui or adb, the info that you disabled it is written into /data.
Once you want to sell your phone on craiglist, you wipe /data and the buyer gets exactly the same software you originally got.
There is also secondary use of the immutability: android system is distributed as partition image, not as a file archive. That means, that the physical fs layout is same for all devices of the same SKU, can be signed (dm-verity), and then verified at boot, whether the filesystem was modified or not. This is being used for ensuring secure boot, and unsealing secrets in trusted environment.