Затем, что если ты будешь писать в реально рабочий счётчик и прочие
регистры, это тут же отразится на "выходе" таймера-счетчика. А это
не всегда нужно. Иногда нужно дождаться окончания отработки
текущего цикла и только тогда перенести значение из "теневого"
регистра в актуально используемый "рабочий" регистр. Я с этим
столкнулся 2024-1992 = 32 года назад, когда программировал
процедуру музыки для игры на ZX Spectrum. У меня была процедура
программно формирующая три канала ШИМ. Так вот если я напрямую из прерывания писал в ШИМ-"регистр" (они были программные регистры процессора Z80, но сути дела это не меняет) то на слух это было слышно как такие мягкие пощелкивания. А вот если изменение рабочего ШИМ-регистрая делал в конце, завершив цикл формирования ШИМ-импульса (просто предзагружал в теневой регистр и в конце, из него читал), то ничего не щелкало, всё было чётенько.