Ein Kernel besteht nicht aus einem Programm, das vorne anfängt und hinten endet, sondern aus Modulen, die eine bestimmt Funktion erfüllen. Auch wird ein Kernel nicht bei jeder Änderung neu geschrieben, sondern ausgebaut und erweitert, denn es mach keinen Sinn, die Ansteuerung der Tastatur oder den Zugriff auf die gesamten Teile der Hardware neu zu programmieren. Somit sind die 20 Millionen Programmzeilen schon mal relativ und das Ganze bekommt eine Struktur und wird übersichtlich.
Das der Linux-Kernel mit der Programmiersprache C geschrieben ist, ist nur soweit von Bedeutung, dass die Sprache sehr schnell ist und das kein Geld für die Lizenz gezahlt werden muss, was bei anderen Programmiersprachen nicht unbedingt der Fall wäre.
Jede Programmiersprache ist aus meiner Sicht entweder leicht oder schwer, es kommt immer darauf an, was man damit machen will. Für ein Programm, das aus zwanzigtausend Zeilen besteht sind alle Programmiersprachen gleich gut, für ein Programm welches aus 20 Millionen Zeilen besteht, spielt die Schnelligkeit wohl eine zentrale Rolle, mehr aber auch nicht.