I've used :has in uBlock filter declarations and it's perfect.(uBlock implements its own :has for its filters)
It should be relatively trivial to isolate the elements targeted by :has and incur the performance penalty only for them instead of the whole dom.