I think it can be buggy if you don't compare it to true/false (IsUnitType returns 64 when using a Boolean2Integer typecast, whereas other boolean conditions returned 0 or 1 - 0 being true, 1 being false)
EDIT: Turns out it was Vexorian, and he posted it over at WC3 JASS - link
Long story short, IsUnitType is a buggy condition, unless you compare it to true or false
Ghan has said he has fixed this. Monovertex please confirm this fix. This was only a problem with people that had signatures in the upper levels like not the special members but the respected members.