[Upgrading, Modifying and Unlocking] kratanuva:
Hey guys, even though I don't post here much, I've done my share of rooting, unlocking, and flashing roms. This post is going to very general, philosophical, long, and technical, and I've tried to research these things myself to no avail, so I really hope someone can put me on the right track. I have a few questions to ask, and if you want you can skip to the TLDR, but first I have a little background on my questions:

Pretty much any guide you can find on rooting, unlocking, and flashing devices here on XDA comes with the warning that you can "brick" your device and void your warranty. Before I started hacking Android devices, I was installing various Linux distros on all sorts of PCs, and I didn't once hear anything about the possibility of bricking your PC, or loosing your warranty from installing Linux on it. The reason why, is because no matter what you do to the software on your PC, there is always the option of installing another operating system, and usually restoring the software to a factory state, because messing with software does nothing to affect your PC's BIOS. However, on most Android devices, we run into trouble flashing custom operating systems on our phone because the bootloader isn't typically as open as a PC's BIOS.

I recently purchased a refurbished Nexus 7, and I've really enjoyed it, because the flashing process has been similar to my experience installing Linux distros on various PCs, at least in terms of "openness"; I can always relock the bootloader, and I can always flash back the stock rom without having to worry about bricking my device (I don't mess with overvolting or overclocking, because that actually does prove a potential hardware danger to your device). My first Android device was a Motorola Atrix 4g, which I rooted and unlocked, but I was sad to find out that the device doesn't have a bootloader that you can re-lock, which means for any warranty purposes, I was screwed. After learning this about the Atrix, I started researching more about the bootloader on Android devices, and even after some extensive Google searching, and looking at XDA posts, I was still confused. So, TLDR; here are my questions:

1. Where is the bootloader on Android typically stored? Is it on the same flash storage as the rest of the OS, a PROM, EPROM, or EEPROM?

2. Along the lines of question one, is fastboot (on devices that have it) part of the bootloader?

3. On a device with an EEPROM bootloader, shouldn't it be possible to restore the bootloader to it's original factory state even if a command like "fastboot oem lock" doesn't work with the device? I realize that if possible, this process could brick your device if anything goes wrong, just like flashing the BIOS on your PC could brick it if something goes wrong, but the idea is that you could do this if you needed to return the device for warranty purposes and you've unlocked the bootloader.

4. Shouldn't flashing ROMs and rooting a phone with an unocked bootloader with fastboot enabled be just as safe as installing a Linux distro on a PC as long as you have a copy of the stock ROM of the device?

5. What devices come with a fully open bootloader? (I define this as a device that can boot into fastboot mode, and can be trivially unlocked, or locked with the commands "fastboot oem unlock" and "fastboot oem lock") All the Nexus devices (at least the new ones anyway) are like this, and apparently the Motorola Xoom is too, but I don't know of any other devices like this, and it would be helpful to have a list, because I like the idea of always being able to completely restore the device to it's factory state. Is there a better term for what I define here as a "fully open bootloader"?

6. What devices come with a bootloader that is unlocked by default? I believe the Nokia N900 is like this, (in fact, I've heard Nokia encouraged flashing as a standard update method for the N900) but I'm not sure about any others.

7. Why is getting new/custom Android images working on different mobile devices so difficult? To explain this more, I'll go back to the analogy of installing an os on a PC: When you download a Linux distro to be installed on a PC, you don't have to download a specific one for your device, you just have to choose the right architecture and things generally work right out of the box. I know there are driver issues sometimes, but it's still different than developing an alternate mobile OS; you usually have to deploy images for specific devices, and even then oftentimes a lot of the features don't work. Is this because mobile device drivers are not yet as standardized as device drivers for PCs are, because OEMs don't usually release the source code for their device's hardware, a combination of the two, or something completely different?