the 0 being 'false' would be logical if you were using integer based return replies etc. Its somewhere in the .hlp file i think, but one part of the help file is wrong:
"If-then-else statements"
if (%x == $null) echo x has no value
if (!%x) echo x has no value
.. because %x could indeed be 0. It's good practice to play it safe when you don't know what a variable/identifier could return.
Other 'false' values are $null and $false - there might be more