It appears that there is fall-thru
I do not see how a "fall-through" is observed. Just traverse through the code keeping in mind how the if-else works.
b is initialised to false by default.
x = 1 is not executed since if(false) is encountered.
b is assigned false, else if(false) is encountered.
else if(false), x is not assigned 3
Here x is assigned 4.