reason for kernel compiling
1.You can install bug-fixes,security updates or new functionality by rebuilding the kernel from update source.
2.By removing unused devices drivers kernel sub-system from your configuration,you can dramatically reduce kernel size and therefore memory usage.
3.By enabling optimisations more speicific to your hardware , or turning the system to match your specific sizing and workload,you can improve perfomance.
4.You can access additional features by enabling kernel options or sub-systems.Some of which are experimental or disable by default.
5.You can solve problems of detection / conflicts of peripherals.
6.You can customize some options for example:bios,keyboard layout..etc
7.You can get a deeper knowledge of the system.