This has bothered me, but actually it seems that the && has fixed evaluation order:

http://stackoverflow.com/questions/7925479/if-argument-evaluation-order

So all is ok.