The main flaw of the technique is that the author uses the '&&' not as a logical operator (the intuitive use) but as a conditional operator.
'&&' is the 'Logical AND'. The statement "foo() && bar();" just doesn't make initial sense, because the logical result of the expression is thrown out.
After thinking this, the programmer probably will realize that the functions are actually called to evaluate the expression. And then finally (hopefully) the programmer realizes that they are evaluated short-circuit.
So, the code may be functional but it is not very readable.