以前は :empty も :blank も中身が空の要素を対象にするセレクタで 違いはこうだったはずです

:empty → 完全に空で空白文字すら含まない
:blank → 空白文字は含んでもいい

ブラウザが実装しているのは :empty のみで :blank は実装されていないので空白文字列があるだけで対象外になってしまう扱いづらいものでした
それが

:empty → 空白文字は無視して空の要素
:blank → input や textarea などのユーザー入力が空

になっていました

変更履歴を見ると 2018 年なので結構前に変わっていたようです
https://w3c.github.io/csswg-drafts/selectors/#changes-2018-02

しかしブラウザの実装はというと 以前から変わらず :empty は空白文字が入ると対象外ですし :blank は未対応です

ただ既存ページへの影響を考えると 本当にこの通り実装されるのか疑問もあります
古い :empty の仕様に従って対象から外すためにあえてスペースを入れてるようなことをしてるページもありそうですし(経験あり)
まぁ現状の使い勝手の悪い :empty を使ってるページ自体がほとんど無い気もしますけど……

:has だって jQuery が壊れるとか言って () の中に不正セレクタが入るとエラーになるようにするという仕様から外れるような修正があったくらいです
実装されてもなにかありそうな気はしますね