IMO, a Boolean that is not exactly 0 (zero) should be False, so (0.5 or 0.5), should evaluate (in the Boolean world) as True.

Again, IMO, regardless of how DF works this out, logically, it is doing it wrong, and so it is a bug.

This may be a hangover from the very early days when there wasn't a Boolean datatype, but now that there is, DF should evaluate it differently - just saying...