Just a quick clarification: the compiler in this case is the industry-standard gcc and it is working fine.
The only problem is the Spark pre-processor that lets novice coders write simpler code than the normal C/C++ rules would allow. I know you think of the compiler as being the thing that runs when you hit the button in the webIDE, but in reality there are two parts to it and only the first part has problems.
The reason your code is problematic for the pre-processor is that you are using a single value for the test of the if. If you re-write your code like this:
else if (door_sense_falling_edge==true)
it will compile fine with the pre-processor.
The pre-processor does not work well with single value tests because it does not expect novices to write code that way. It is a bug for sure, but it is not some terrible bug, just a minor thing.