Eh, I don't think people are idiots, but I think anything that requires end users to muck about with development tools is a very poor choice. It doesn't need to be the world's best bootloader, it just needs to not overwrite itself, and do a checksum test on boot. WDT should reset to bootloader in case the update's a dud and the firmware crashes. Obviously if you need to update the bootloader itself things get more complicated, but the point is to make it small and simple so you can avoid doing that.
I shouldn't be so harsh, I don't think they can't write a proper bootloader. It's this common mentality in OSS and, apparently, OSH that the product is never "done". It's always in development stages. Hell, there's more than one quite stable, usable program that I use on my computer whose version number still starts with "0.". These OS* groups really need to set proper release deadlines and prioritize polishing the UI so end users don't have to break out avrdude. It's OK if it has a few bugs if all the user has to do to fix them when you release an update is click a button or two. Releasing bug-free software is impossible, so an emphasis has to be placed on the bug fix mechanism.
Development versions are one thing, but Makerbot's been around long enough to get the bootloader right. I don't think I'm being unreasonable in thinking that should be a high priority, since it's used to fix other bugs.
My method of choice for update releases would be a self-contained EXE file (Windows) or Python script (Linux - easiest way to ensure a common set of GUI components and whatnot, and just about every distro has it preinstalled) with a little information blurb and an "Update" button. Works from any PC plugged into the thing via USB. The Linux one could work on Mac as well with a bit of cross-platform voodoo.