Given the compatibility between SD/MMC, one thing I'd like to see on the market, but haven't, is an Android phone which has no "internal storage" to speak of, but instead replaces the soldered-in eMMC with a microSD socket. That would make expanding, brick-recovery, as well as backing up and controlling access to the data very easy; like taking the hard drive out of a computer before giving it to someone else.
It's not difficult at all to do from the hardware perspective, but no one seems to have produced such a thing on the mass market.
You dont need a hw mod, all you need is an Android phone with a sdcard slot and the option to do raw read/write to the embedded flash from the bootloader as you WILL fuck up many times during experimentation. Havent tried with qualcomm stuff, but successfully converted my Mediatek-based CAT B15Q to sdcard-only.
All you need to modify is /etc/fstab, /init.rc (or, in some cases, /init.XYZ.rc), split the sdcard into three partitions (OS, /data, /sdcard), copy the existing partitions from flash to the sdcard et voila.
Actually, now that I think about it, there was an Android Tablet that had some common mods to do this. The ASUS TF101 had incredibly slow internal storage.
A number of ROMs supported "inverted storage" that put the main OS onto the SD card for performance reasons.
and the option to do raw read/write to the embedded flash
To use PC bootloader terminology, that's chainloading. The SoC still starts from internal storage first, then switches to SD. My comment was about making a phone without internal storage at all, i.e. SoC boots directly from SD.
All ARM SoCs to my knowledge know enough about their peripherals to get a bootloader off an SD card, so the BIOS/first-user-replacable-code-to-run could easily come from there instead of the storage that's soldered to the motherboard.
eMMC is actually really different than SD in ways that matter for mobile devices. For example, eMMC supports a very low level hardware booting sequence (boot ROMs on SoCs can clock in data without needing a driver to initialize the eMMC device). Software drivers for MMC and SD add a lot of complexity. They need to query the device determine if it is eMMC, MMC, SD and then query the card status and properties and support quirky cards. MMC and SD have different specifications and initialization state machines (even though there is some overlap). I am not even going to mention secure boot. This is way much more complex than you might think.
For example, eMMC supports a very low level hardware booting sequence (boot ROMs on SoCs can clock in data without needing a driver to initialize the eMMC device).
I know about that feature but the SoCs that use it are usually very primitive and not those in smartphones and the like, which have a much more featureful boot ROM. Keep in mind that even the Raspberry Pi can boot from SD, and that's not even a very powerful SoC. The MTK SoCs which I'm more familiar with have a boot ROM that supports booting from (e)MMC/SD, NAND, and USB/UART (for recovery). TI's OMAP series are similar:
even if you get past all the issues that spicymaki mentioned, you'd still run into the issue that most sd cards have absolutely atrocious performance for being used as something like the boot drive for a computer. even the good micro sd cards are pretty terrible compared to the internal storage in your average smartphone.
if using a really slow tablet or phone appeals to you, roll your own tablet with a raspberry pi, touchscreen, battery, and micro sd card.
The problem with this approach is that the flash chips that get used in SD / microSD cards are really bottom of the barrel stuff. It's going to be painfully slow and is practically guaranteed to crap out on you eventually if you use it as a primary volume for long enough. They're built to be as cheap as possible, and last a few hundred cycles of getting filled with images and erased, not thousands/millions of tiny writes.
I had a phone that (almost) worked like this way back in 2010. It wasn't an Android phone though, Dell Venue Pro running Windows Phone 7. All the user-facing storage was in the form of an SD card but there was actually a smallish amount of onboard storage that was used to flash the OS image when you inserted a blank card. There was also some sort of device-specific encryption key preventing you from moving cards between phones without reformatting.
I would happily buy such a device with cold hard cash, phone or tablet (or both!). I wonder how much more likely this would make devices easier to install alternate OS' on top of?
On smaller or older computers I do all work in RAM via tmpfs and mfs. I only use removable external storage for storing bootloaders, kernels with embedded filesystem and a small archive of custom software.
If I have enough RAM I can chroot and install some distribution from the internet or from some larger capacity external media, but thats optional.
It's not difficult at all to do from the hardware perspective, but no one seems to have produced such a thing on the mass market.