Vex works mostly on geometry attributes, so no bool attribute -> no bool variables I presume. (All Houdini parts are tied closely to things like its geometry library which are used across a whole program, so the design of such thing influences all parts).
Additionally VEX is heavily multi-threaded with SIMD instructions, in which case data alignment and vectorization is crucial for performance. I suspect it is easier for VEX for perform on floats and vectors, which can be piped into registers faster.