Зачем нужны
Оба принимают список селекторов и помогают писать короче без дублирования.
:is(h1, h2, h3).title { line-height: 1.2; }
:where(.prose) a { color: inherit; }
Специфичность
:is() — берёт максимальную специфичность аргументов. :is(#a, .b) ведёт себя как id.
:where() — всегда ноль; идеален для base-стилей, которые легко перебить.
Оба «прощают» неподдерживаемые аргументы в списке лучше старых групп (forgiving).
Итог
:is — удобство с весом самого тяжёлого; :where — удобство без веса. Выбирайте сознательно.