И главный вопрос — почему установка -webkit-backface-visibility: hidden; контейнеру помогает от этого? Можно ли ставить это свойство всей странице, если его прямое назначение меня не интересует?
Точные условия появления прыгающих блоков описать довольно сложно. Похоже, блок или его родитель должен быть float. Анимация должна быть сделана через css transition. Хорошо срабатывает при изменении прозрачности.
Пример проблемы можно посмотреть, например, в
Инстаграме (hover-анимация маленьких картинок колбасит строки и столбцы на 1px по ширине и/или высоте). Проблема наблюдается в Хроме и иногда в Сафари.