Weil man manchmal, besonders einfach bei Geräten mit A10 Chips, an den Bootloader ran kommt.
Dieser kann ggf. ausgelesen und modifiziert werden. Oder er ist von Haus aus in der Lage da flexibel zu agieren.
Der A10er zB bootet auch vom USB Port.
Die ROMs sind deswegen für "Spezielles Gerät X" zugeschnitten, weil...hm, ja, weil die eben zugeschnitten sind.
Das ist wie Windows nach einer frischen Installation, nur deutlich schmaler und ohne den Support für endlos viele Geräte dank allgemeiner Klassen-Treiber.
Bei Android muss demnach also erst der Treiber für dieses und jenes integriert werden, damit es auf dem Endgerät später was reissen kann.
Mal eine Erfahrung aus meinem Experiment, es mussten die Treiber für CPU, WLAN, Display, Touchscreen, ... einzeln gesucht und integriert werden.
Diese werden dann entweder direkt in den Kernel integriert, oder über eine, mal abstrakt genannt, Autostartfunktion zur Laufzeit geladen.
Die Leute bei CyanogenMod zum Beispiel versuchen es meines Wissens nach eine ROM für viele verschiedene Geräte anzubieten, klappt nicht bei jedem gleichzeitig, aber es ist möglich.
