This is probably true. I think we should add this as one more of the
preprocessing rules which we really should just do, as well as automatic
mangling of integer types.
Btw, the really scary thing is that I bet there are programs out there that "know" about kernel internals, and do things like
#define CONFIG_SMP 1
#define __KERNEL__ 1
#include <asm/atomic.h>
in order to get the atomic helpers from the kernel, and using CONFIG_xyz markers to force the exact version they want.
And we will inevitably always end up breaking stuff like that. Nothing we can do about it - in the end, users can do infinitely odd things and know about our internals, and whatever changes we do will occasionally break some of the more incestuous code.