Ok, first off, some useful descriptions;
AOSP: The source code provided by Google. This is directly buildable for Nexus 6 just by following the instructions.
CAF: The source code provided by Qualcomm, which typically involves *some* degree of feature addition, but mostly HARDWARE bringup.
The odd thing about the relationship between AOSP and CAF, is that they are both each other's upstream. I think I would classify CAF as being somewhat more of "experimental" code.
CM: a complete and utter MESS. It takes bits from here, bits from there, and throws in a jumble of other bits... none of which really work well together or were intended to be merged in that way.
Basically, CM is not so much a build of CAF as they pull in certain *parts* of CAF. So if you did a build of PURE CAF, it would much more closely resemble a build of AOSP.
Now is CAF buildable for Shamu? Hmm, sortof.... maybe. They do pull in AOSP, but I don't think they actually work with Nexus devices so much as their own internal development devices, and certain specialty "dev" devices like Dragonboard 410c. What that means, is that you will probably want to start off with a *generic* apq8084 manifest from
https://www.codeaurora.org/xwiki/bin/QAEP/ under the "release" branch. You will then need to mess around with the blobs and kernel, add a shamu device tree, etc., and what you end up with at the end, will strongly resemble a pure AOSP build, but probably have a few things broken or unstable.
IMO: For something like Shamu, you don't really do a pure CAF build, since google has already selected and stabilized the appropriate parts of CAF for you. But if you see some new or not-included FEATURE in CAF, then you consider pulling that specifically into an otherwise AOSP build.