I should say in my color scheme red is the same as #if and green is for the macro function.
Ahh, that is where we are at a difference of opinion. What are you expecting defined to be highlighted as, green? red? According to the rules, it is getting highlighted, or not not highlighted as expected. If you are expected green, I think that would be way wrong. I could see red, since it is a preprocessor directive. There just ins't a rule for it, but one could be added though.
You see, the #define macro() gets highlighted green because you are defining a macro. With #if, you are not highlighting a macro; defined() it is not a macro.