Earlier quoted context omitted.
I don't know the exact rule, but "abstraction layers" for a driver are disallowed. I believe it was AMD or ATI that added a new driver for a device, but they basically just took the code from their proprietary driver, and then put an "abstraction layer" in the middle. That did not make the kernel overlords happy and that version of the code was never merged.
Are abstraction layers still disallowed if they are only able to load GPL code?
How would you possibly implement this as a technical restriction?