If you use 2 literals you can compare them in lite-c as well as in c without problems, I agree. On the other hand, comparing two literals is pretty pointless. And as soon as any calculation is involved comparing for equality gets dangerous, regardless if that calculation is a simple expression or a function call. You don't need a cast to f*** things up.
Long story short: From my perspective the above error is clearly a programmer's mistake and may not be excused by saying the language is not well designed.
The trade-off problem between world size and precision is the same for floats with the difference that you can have larger worlds but the calculations done for larger values get more error prone. But as long as I can remember no user ever had a problem with exceeding the current coordinate system. But in general I totally share your opinion: on the long run GS should switch to float. Maybe when a new major version comes out?