MPLABX macro expansion
In C, undefined symbols in the preprocessor evaluate as 0. Therefore, your first two examples all evaluate as 0 == 0 which is true. 

If you 

#define x 1


then

#define y 2


then (x == y) evaluates as (1 == 2) which is false.