И?
Селектор по потомку может быть таким же долгим:
<div> <p> <span></span> </p> </div>
div p {color: red}
Приходи тся перерисовывать всё в p.
<div> <span></span> </div>
div:has(span) {color: red}
Производительность зависит только от структуры кода и ни от чего более, что, собственно, не ново.