This is a fundamental architectural difference, not something you can change easily. LILO's bootloader contains explicit references to the location of a 'map file' which itself points at the kernel's location on disk: both must change whenever the kernel is rewritten. GRUB doesn't need a hardwired reference to the kernel's location, because it understands filesystem layouts.
Disclaimer: I'm still using LILO because, well, it still works perfectly well for my purposes and I have better things to do than mess with bootloaders. Also, last I encountered it, all the GRUBs required deep magic to dump its bootloader on both disks of an md-raid-1 set and to boot from kernels on such an array. This may well have changed, as that was years ago.
I have never once forgotten to rerun LILO because my kernel building script does it for me automatically (and, no, this doesn't mean I compile the kernel as root). Doesn't everyone's?