Yes, you are right that there are glitches in the formatting of boolean values. Sometimes the formatting as True or False fails. I haven't investigated it more thouroughly so I cannot give you the details.
However, it just concerns the formatting - not the evaluation. In fact, any non-zero number is interpreted as True in logical expressions. And zero is interpreted as False. So you really don't need the "If(WildMatch(...) > 0, True(), False())". You can use "WildMatch(...)" directly as boolean.