Forgive my ignorance, but can you explain what a CAF, or CAF clone means? This is interesting to me.
I may be wrong, so don't take my word for it. I will attempt to answer.
CAF is code that isn't in AOSP. It is from Code Aurora (
https://www.codeaurora.org/). At first, CM was basing their kernels with AOSP, which made it easier for faux to create kernels for AOSP ROMs. Now that CM is switching to CAF, it makes it harder for faux,
since I think not all CAF code is open source (don't quote me on that. I thought I read it somewhere...maybe I read it from faux). AOSP is all open source.
snip...
Geek Talk Below:
CAF == Qualcomm's open source branch.
CAF's kernel sources are 100% open as required by GPL. Their libraries, however, are under Apache which means you can use them as you see fit, but not all are open (some are strictly as proprietary lib files).
For ALL NON-Nexus Qualcomm devices, CAF's kernel + libraries will be the closest to AOSP experience (Even Google's AOSP still depends heavily on these proprietary libraries from various vendors including Qualcom/CAF).
Historically, Qualcomm often creates a separate less optimized version of their proprietary libraries for Google to use on Nexus devices (I guess because Google didn't pay them to be their premium partners like Samsung, HTC and LG), but this didn't stop Google from turning these basic libraries and create amazing experiences on their Nexus devices (HTC's Nexus One, Google's Nexus 4, Google's Nexus 7 2013 and the upcoming Nexus 5).
So now you know there are two distinct branches of libraries, AOSP and CAF's own version. Although both were created by CAF, but there exist some differences between the two (These differences are what creates bugs when you mix match the libraries and kernel source).
For reasons unknown, CM has decided to ditch the less optimized libraries and opted for CAF's own libraries for Nexus 7 2013... This created a massive headaches for many novice users and developers. If you load the AOSP kernel on CM ROM, you now have a mismatching kernel / library combination which led to video glitches and broken Slimport on Nexus 7 2013.
It looks like for Nexus 4, they are slowly doing the same thing by replacing the AOSP libraries with CAF versions... over time, the AOSP kernel will no longer be 100% compatible with CAF based ROM... This will eventually lead to fragmentation of Nexus kernels (just like Nexus 7 2013

)
I am HIGHLY AGAINST this move towards CAF for pure Nexus devices. Nexus devices already work quite well with what's given, and it enjoyed wide compatibility with ALL AOSP derived ROMs. By moving towards using CAF libraries on Nexus devices creates unnecessary FRAGMENTATION and incompatibilities within a Nexus device family!
Also I am not sure about the legality of using CAF libraries... Basically if you build a ROM based from it, you are redistributing the Qualcomm proprietary blobs and Qualcomm has EXTREMELY strict redistribution clause with their binary blobs (basically they need to grant you explicit permissions) where as AOSP it is less stringent than Qualcomm. Whenever you deal with proprietary libraries in general, you are in the gray area of legality and you have to tread very carefully. (This legal issue was what kept Nexus 7 2013 from releasing their factory images for a while between Qualcomm and Google. This is also what eventually led to JBQ leaving Google).