well I don't say don't use pch. They have some advantage, they can speed up compilation, certainly when one is using a 'stable' sdk. The sdk of CB is not stable yet so because of that sometimes pch make the compilation longer, because there's a very high coupling of unrelated things in that pch file. On the other hand it introduces broken builds way to many, why because one adds an extra statement with whatever objects or types, hit compile .... it compiles. Cool, yes, but it compiled because most of the developers are using the pch build system or they environment automatically does the pch way, but then when building on a non pch build environment, the build is broken because the correct headers were not added for those just added statements.
My personal feeling is that pch makes programmers a bit lazy and the programmers forget to think about how headers actually (should) work. How would I say it, it gives a sense of false safety.
The basic line is : use headers correctly --> then it builds for non pch, and if you also want to support pch well then you add some special things to your file.
I once have written an article on correct use, I will review it once more tjhis weekend and publish it, I think it will make a whole bunch of things more clear.
Synopsis : pch are not bad, they need to be used correctly in ADDITION to the normal way of header inclusion, so one gets correct and portable code. ;-)