It mentions that it uses some named files for boot:
bootcode.bin
loader.bin
start.elf
config.txt
kernel.img
I haven't worked with ARM yet, so sorry if this is worded incorrectly, but are the files listed above specific to the Raspberry Pi's boot process, or is it the same with all ARM chips? Or perhaps it is the Broadcom SoC that the RPi uses?
Does this mean that Kernel.img can (more or less) be replaced with a custom Kernel, without having to write a bootloader?
Afaik the rpi uses uboot as the bootloader, so yes you can just provide an elf file as the kernel.
The rpi has a complex boot process because its actually a graphics chip with an arm coprocessor. So on boot the graphics chip starts and needs to start the slave arm core.
This process is internal to broadcom so you need to keep the binary blob bootloader.
I'm not familiar with the Raspberry Pi's boot process, but I can comment from a more general perspective: Its not uncommon for ARM SoCs to support booting off of a flash chip/SD card/MMC card formatted with either an MBR or FAT. Many Freescale SOCs will try to boot by reading an image from a partition marked with a special partition type identifier; while most TI OMAP cores, if I remember correctly, will look for a FAT file system and then read a specific file off of it.
In both cases these files are in a custom simple image format (Generally just binary with a custom header)