It's definitely better to use `empty`, but I'm not aware of any reason why comparing against the empty string wouldn't work. The semantics should be nearly identical. `empty` just compares the string's `length` to `0`, and when comparing against the empty string, it'll try and compare each element, and since all 0 of the elements are the same, it'll be `true`. So, the only real differences are that `empty` is more idiomatic and more efficient (though the compiler might be able to optimize the comparison against the empty string).

So, I don't know why you would think that it's problematic. It certainly doesn't cause any problems with `null`, if that's what you're worried about. `null == ""` evaluates to `true`.