WCF is a mess and poorly documented. I have several significant implementations of WCF I support now and I really often wonder WTF Microsoft was thinking.
I once spent a day or two looking at WCF in Reflector. Interestingly, while the API makes it look like a tiered, flexible architecture it is not. Instead, at the bottom (!) layer you basically have case distinctions, depending on the layers that were configured on top.