It's not "bad" design. It's "bad" only theoretically and just different from strongly-typed languages. I like its "inconsistent" function names - for a lot of functions they're similar to C and in most cases they're very easy to remember, as opposed to some other languages, including python (!!).
Of course there are some nuances, but they're in any language. And I personally think "10" is semantically equal to 10 in most cases, so comparison is not a problem, either. You just need to be slightly more accurate while writing things.
And my main idea is that only a statically typed should try to be strict. And python very oddly tries to be strict in some places while being dynamically typed. Look, it doesn't concatenate string and long - even Java does that!