О! Спасибо. Я теперь обратил внимание.
Обратный масштаб в оригинальном коде выбран неправильно:
1.2 * 0.8 = 0.96. 4% разницы, с учетом прочих погрешностей и дадут +-4 на сотню пикселей.
Всегда, когда идет увеличение/уменьшение на X процентов, нужно учитывать, от исходной или от целевой величины идут проценты. Т.е. фраза "А меньше Б на 20%" совершенно не означает, что "Б больше А на 20%".