That one always made at least some sense to me -- you're comparing with a number, so of course the string needs to be cast to a number.
But comparing two strings makes them into numbers?? Something rotten in the state of Denmark. What happens if you're comparing, say, two password hashes, and they both happen to begin with 0e
?