OK well I see the logic, I'm not sure I agree with it though. This has the potential to create some unusual behaviour if you are not aware of it (I suspect many aren't).

I discovered this in a function I wrote that processes and compares information from a database. As databases can feed in different types of data I didn't know before hand what type of data was going to be on either side of the evaluation. You can imagine my surprise to discover that it was reporting that data that equalled zero also equalled data that was a string.

I guess the lesson here is that if you don't know the data type before hand you can't test for equality without also checking vartypes or casting to string first.

It still doesn't seem right to me, but at this stage I can't suggest an alternative for the KiXtart interpreter except for explicitly checking for this case (which probably wouldn't be too elegant).