If somthing is done wrong, there should either be an error (not required, as it would be fatal in instances like this), or the function should return FALSE (0).
Regardless of the fact that the channel flag +b does not exist, the user does not have it, thus it shoulodn't return 1.
I also noticed that matchattr is returning 1 on "matchattr ppslim ||b #channel". If memory serves me correct, you should also be able to match bot flag using the matchattr system (no reason why we shouldn't). As such, it's telling me i'm a bot, which I aint.