Tocar no DOM aciona um reflow e repinta mesmo que nada mude?

Estou trabalhando em um pequeno mecanismo de modelo JavaScript e tenho duas abordagens possíveis para lidar com atualizações no DOM quando o modelo é alterado:

Verifique se a atualização do DOM é realmente necessária antes de fazê-lo. Isso tem o benefício de não arriscar atualizações desnecessárias, mas estou desperdiçando espaço em manter o controle de valores antigos.

if (oldValue !== newValue) {
    element.textContent = newValue;
}

Apenas faça. Isso é obviamente mais simples, mas tenho medo de desencadear retrocessos e refluxos sem motivo.

element.textContent = newValue;

Observe que também estou manipulando o DOM chamandosetAttribute, addClass eremoveClass, mais configuraçãostyle[prop] = value.

Portanto, minha pergunta é: os navegadores modernos são inteligentes o suficiente para perceber que nada realmente mudou e, portanto, não executam reflow ou repint, se você tocar no DOM sem alterar nada?

questionAnswers(1)

yourAnswerToTheQuestion