freebsd-update with a custom kernel

At least for me, freebsd-update always overwrites my custom kernel when it's been installed in /boot/kernel which is the default location for the FreeBSD kernel. The FreeBSD Handbook states that freebsd-update updates just the generic kernel in /boot/kernel and /boot/GENERIC. It even recommends to keep a copy of the generic kernel in /boot/GENERIC, which you have to do manually since /boot/GENERIC does not exist on a new installation. I believe that many people misread that part of the handbook like: "If /boot/kernel does not contain the generic kernel, but /boot/GENERIC does, then freebsd-update will just update the latter one and will keep the former untouched." But, it simply does not as some poking in /usr/sbin/freebsd-update (it's a shell script) revealed. Thus, I keep the generic kernel in /boot/kernel, and place a custom one in /boot/kernel.custom if needed. You can specify that directory when installing your kernel:

# cd /usr/src
Don't forget to tell the boot loader:
echo 'kernel="kernel.custom"' >> /boot/loader.conf