Thanks, carlsson, that's a good summary. BIOS, EFI, et al primarily function as the machine initialization to bootstrap code -- the variances and enhancements each offer all depend on the motherboard's targeted solution. Beyond that, BIOS/EFI's OS integration (if any) is determined by which OS is loaded. DOS and earlier Windows makes more use of BIOS, and EFI for Itanium2 booting HP/UX or for Xeon booting OSX has tighter integration, whereas Linux and newer Windows essentially take over the machine after bootstrap -- which has the benefits of being more portable (hermit crabs) across many mobos, but it adds even more startup costs over the other integrated solutions.
My experiences with EFI over BIOS is that it is slower to get to the boot process, and it is definitely larger and more complex to operate. BIOS and EFI-based startups on commodity hardware can take up to several minutes, and you have to strip down a lot of default settings to make their execution tolerable. EFI size and complexity offers the ability to launch a richer set of utilities and diagnostics using either a console or GUI -- which is useful because it is integrated with the machine and you don't have to fuss over slow booting and handling of external "live" media for the same. That said, I am not convinced EFI mobos assist the commodity hardware / OS mix (Windows, Linux) targeted users in any significant way; I can see its fit within enterprise servers and designer computers (Apple, Sony) which can make it work well and leverage its presence, because they are the OEMs of both hardware and OS -- which they can then sell that integration for a premium. It's not evil, it's business. The alternative is enterprises can staff in-house expertise to forego those costs by the manufacturer's VAR and stick with "open" solutions and manage themselves.
The
coreboot project is another animal (rabbit) to replace the good ol' BIOS, too, and the benefit there is to simplify the machine startup process, load a Linux (or Windows) kernel into initialized memory and I/O controllers that are required for fetching (cdrom, disk, network) the payload. The significance of this new startup process is that it takes only seconds from machine power-on to an initialized Linux console -- an experience not unlike turning on any ROM-based Commodore machine, with the extended option of booting into a workbench (GEOS, Amiga). And then, you might have the option for the workbench to restore very quickly to your last session from its hibernate functions.