I don't know if KMI is all that stable (I've not looked), and some of the modules may be constrained to that symbol space (though not boot drivers), and they'll still likely encode assumptions about being in a single kernel address space. KMI alone is likely not sufficient for driver portability. The original goal of this Android project was to reduce the cost and complexity of vendor forks, which as explained in the docs, sometimes ran up to 50% patched code prior to GKI.