I'll file feature requests about these.
The first one is relatively simple to implement, but possibly of limited value. In this example, if you define the top-level macro, it would be highlighted, but you wouldn't be able to see that the next level macro wasn't defined (well, maybe in the hover-over popup, but then we're stuck tracking a lot of stuff that we shouldn't be spending CPU cycles or expending memory to track).
#define STUPID_PREPROCESSING MORE_STUPID_PREPROCESING(x)
void STUPID_PREPROCESSING(function_name);
With respect to the preprocessed version of the file and Context Tagging, the most valuable tool to look at that is to look at the Defs tool window. If something doesn't reflect what you expect there, then you know you still have preprocessing to untangle (or, in an ideal world, eliminate from your code).