It's always been that way. `null` is equal to `""`. The only difference between the two is that their `ptr` properties differ. In the `null` case, it's `null`, and in the `""` case, it refers to a chunk of memory. So, when they're compared for equality, each of their elements is compared, but because they both have no elements, they're equal. Where they differ is with the `is` operator, because that explicitly compares their `ptr` properties.

The problem with `null` is when you want to distinguish it from `""`. You have to use `is`, and relying on `null` as being special and separate from `""` for strings tends to be a bit iffy, since the only time that `null` is treated as special is when you use `is`.

Regardless, using `empty` is better, because it's more idiomatic and more efficient barring optimizations by the compiler.