From what I understand, generic kernals tend to be a lot slower than kernals optimized for the hardware.
No.
Also, does the linux kernal choose between different HALs on each boot?
I confess I don't know what you mean.
Let me put it this way: I use gentoo. I installed gentoo on my eeepc. Compiling an entire system, including KDE4.x, mozilla, openoffice, etc, would take several days at least. To avoid this, I removed the hard drive from my eeepc, plugged it into my desktop, did the compilations over ~2 hours, rebooted, it worked, plugged it into my laptop, and it still works. Keep in mind the two systems have almost zero common hardware. About the only thing they have in common is the hard drive controller, which is AHCI - it's a generic driver, not hardware specific.
Short version: driver loading is done at runtime.
having every single driver available for all of their possible hardware on every linux machine they sell is going to significantly add to the initial install bloat. With Windows it's pretty trivial to have a "run once" script to delete drivers after Sysprep, making the final footprint on the drive much smaller.
I'll take the Pepsi bloatware challenge vs Windows Vista any time. The source code for the entire linux kernel, with every opensource driver available, is a 54MB download, compressed. Uncompressed and compiled, I couldn't tell you how much space it takes, but Fedora uses a 300MB /boot partition, and it fits at least 2 copies of the initrd with all available drivers in it, so there's a 150MB upper limit on the total disk footprint of the drivers. I'd wager the total size of the kernel+all drivers closer to 30MB though.
Furthermore, would not having more drivers to search through at boot increase boot time?
No. Every device will report a device ID - from there it's a simple matter of looking the driver up in a table, and pulling the driver out of RAM.
Part of the point of imaging is the ability to customize and optimize the OS prior to install, in addition to simplifying the deployment process.
That's a Windows-specific limitation, not a universal one. Keep in mind Windows drivers tend to include things like userspace tools and fancy vendor-specific interfaces: in linux, it's just the driver. The userspace tools and interfaces are almost inevitably hardware independent.
Granted, you could save some disk space by making the image hardware specific, but as long as you have more than 10GB of hard disk space, there's no significant benefit.