Jepp, FreeBSD ist nur auf Userland-Ebene uneingeschränkt rückkompatibel. Auf Ebene des Kernels wird eine gewisse Stufe der Sourcecode-Kompatiblität gewahrt, d.h. es reicht oft aus Kernelmodule neu zu komplilieren. Einfach übernehmen kann man sie nicht. Der Grund dafür liegt in der Struktur des Kernel und trifft beinahe alle unixoiden Systeme, denn sie kennen keine harten Abstraktionen zwischen dem Kernel selbst und den umgebenden Modulen. Dagegen kann man leider auch nichts machen, zumindest nicht mit vertretbarem Aufwand.
Neu in FreeBSD 9 ist die harte Versionsprüfung. Jedes Modul enthält die Version des Kernels (sysctl kern.osreldate) und der Kernel lädt Module nur, wenn die Version mit seiner eigenen übereinstimmt. Das verhindert die oben genannten Sofort-Panics beim Laden eines nicht kompatiblen Moduls. Nvidia-Blob nutzer hatten z.B. genau das Problem in der Form, dass nach einem Kernelupdate der Kernel schon beim Boot abschmierte. Das war unschön.
EDIT: Es wäre interessant zu wissen, wie der Blob aufgebaut ist. Denn inzwischen gibt es zum Glück nur noch wenige "harte" Blobs, die einfach in Form eines fertigen Kernelmoduls kommen. Viele bestehen aus einem binären, aber plattformagnostischen Kern und einem im Source vorhandenen Platforminterface. Man kann sie dann neu bauen, was meist hilft.