Writing out "== true" does not result in a extra comparison. The comparison is made anyway but implicitly.
Yes, the if-statement obviously means checking if the expression equals true, if you then put "== true" in the expression, you're doing an extra comparison. The compiler might do away with your redundant comparison, but then we don't want to rely on the compiler to fix our mess now do we?
How I need a drink, alcoholic in nature, after the heavy lectures involving quantum mechanics.