Bueno, el identificador "Creo_que" no es una variable, sino una constante del preprocesador.
El preprocesador y/o el compilador sólo tienen permitido evaluar operaciones o expresiones con constantes directamente especificadas a mano, así: 0, 1, 11.9, "Hello", etc.
Con #define uno puede crear una macro a nivel de preprocesador,
lo cual simplemente permite sustituir una porción de texto por otra.
Cuando declaramos:
#define Creo_que Me_Conformo_con_CMD
lo que estamos haciendo es indicarle al preprocesador que, antes de compilar el programa (y entonces mucho antes de ejecutarlo), reemplace todas las ocurrencias que encuentre de la macro "Creo_que" por la macro "Me_Conformo_con_CMD".
Como "Me_Conformo_con_CMD" también es una macro, este proceso se repetirá reemplazando todas las ocurrencias de "Me_Conformo_con_CMD" con el valor constante que le hemos adjudicado, que en este caso fue simplemente un 0.
Asimismo CMD_OK no es una "variable de comparación", sino una macro, lo cual hace que cada vez que aparezca en el código el identificador CMD_OK será reemplazado automáticamente por la expresión que está a la derecha: (Creo_que == Me_Conformo_con_CMD).
Los identificadores "Creo_que" y "Me_Conformo_con_CMD", tras hacer todos los reemplazos del preprocesador, se terminan reduciendo a constantes.
Nos va a quedar reducido a algo como (0 == 0) o (1 == 0), según lo que hayamos elegido.
En el caso de tener (0 == 0), lo que estamos haciendo es comparar dos constantes.
Esta comparación no la hace en ningún momento nuestro programa ejecutable HolaMundo2bisbis.exe.
El ejecutable no se entera, sino que antes del proceso mismo de compilación la comparación (0 == 0) ya fue realizada, y dio como resultado el valor 1 (VERDADERO, pues 0 es igual a 0).
____________
Lo que estamos haciendo es jugar con las directivas del preprocesador,
para condicionar lo que va a hacer el compilador,
no lo que va a hacer el programa.
En el programa ejecutable no hay ningún IF.
_______________
En cuando a la declaración:
#define CMD_OK (Creo_que == Me_Conformo_con_CMD)
no es una declaración IF.
En realidad el #if se posterga para más adelante.
Ahí lo que hacemos es dejar guardado en una macro el valor de la comparación de las dos constantes.
Así, la macro "CMD_OK" tendrá guardado el valor 1 (VERDADERO) o 0 (FALSO),
y luego la cláusula #if simplemente pregunta por este resultado, que ya ha sido evaluado previamente.
El sentido de usar CMD_OK es sólo una abreviatura, ya que poner en todos los #if la comparación explícitamente "(Creo_que == Me_Conformo_con_CMD)"
sería mucho más engorroso de leer.
Sin embargo, por lo que veo por tus dudas, es menos intuitivo, ya que la comparación no se hace IN SITU, sino antes, y no se ve claramente que estamos interesados en el resultado de dicha comparación.