The problem is that unlike on the desktop, the display subsystem on many devices is more than just the GPU. Also, the subcomponents of the display subsystem interact with other subcomponents in such a way that if an OEM makes changes, those changes ripple throughout the whole subsystem.
The end result is that if one component of the display subsystem (and this includes the camera, since it has hooks into the display subsystem to handle preview and such) is closed-source and deviates from the reference implementation for that platform, it's a nightmare of reverse engineering to get the other components open-sourced.
That's why, for example, most of the original CyanogenMod maintainers for Samsung Exynos4 devices ditched the platform. Samsung had reference source at Insignal, but it was vastly outdated (Their "ICS" source had significant architectural components that dated back to Gingerbread) and didn't even remotely match what ANY OEM used (Samsung's own handsets did NOT use the "gingerbready" components referenced previously). Getting that source usable with any real device was a nightmare. The kernel wasn't the issue, it was all of the HAL stuff - hwcomposer/gralloc/etc - especially hwcomposer.
Cyngn (the abbreviation I use to refer to Cyanogen Inc) does have access to all the proprietary goodies that should allow them to support a device very well, but so far, their track record has been to do no better than the OEMs they claim to be trying to provide an alternative.
Oppo N1 - didn't receive KitKat OTA until November 2014, 1 year after KK was released. Epic fail. Yeah, there were CM11 nightlies, but Cyngn staff will aggressively remind you that community builds (including CM nightlies) are NOT supported
OnePlus One - Their current state is "average" - many OEMs upated to Lollipop within a month of Google releasing it, Cyngn is at 3 months and counting.