Typical personal computer use BIOS to load first sector of boot hard drive. This is simple subroutine. It can do only that. Sectors are small. And also this sector store information about partition tables. Plainly, kernel would not fit into it. It need another program (GRUB, LILO) which can load kernel (or subsequent stages of boot loader) and do some more things, like recognize file system, search for configuration, mount raid partition, etc.
There are projects like coreboot, it will replace standard BIOS with more advanced version, which can optionally load Linux kernel without additional steps (if it fit on chip). Thus system load faster. It is difficul, because every motherboard need different threat. I have one compatible motherboard, but not tested this function yet.