bools are bools.
They shouldn't really be interchangable with ints, it's one of the language compromises made for backwards compatibility with C.
I think you code will improve if you treat them as if they weren't interchangable. The compiler is perfectly capable of optimizing away statments like "if (x==1)", it output the same code as "if (x)".