This isnt a bug, just an inconvience you might say..
$strip( ) should be used to remove control characters from strings which is what you are doing.. however the contents of $strip( ) are not evaluated, and as a result the if statement is merely checking that there is a value inside and not IF A = B.
if you notice $iif($strip(a) == $strip(b),$true,$false)) - returns False.
now try, echo $iif($strip($false == $false),$ifmatch,f) - which returns $false == $false - so it wasnt evaluated...
now, if we do.. $iif([ [ $strip($false == $false) ] ],t,f) - you get the right answer after all, by reevaulating it.
So the short and sweet answer is, that it isnt a bug, just that the contents of $strip() are not evaluated so the == isnt checked as a normal if statement.
Hope this clears it up.
Eamonn.