Я знаю - это дичь, выделять свой ответ как решение, но вообщем-то я решил найти помощи в репе реакта и меня
натолкнули на решение. Я развернул чистый проект и пробовал воссоздать проблему шаг за шагом.
Вообще решение странное. По докам реакта - если ты создаёшь PureComponent, то и по дереву ниже все дочки должны быть PureComponent. Поэтому я не решался пробовать сделать UiWrapper чистым. У меня чекбоксы, кнопки и радиокнопки все обёрнуты в UiWrapper. При этом они наследуются от Component и через shouldUpdate мне их обновлять не пришлось.
Тем не менее на будущее, если кто-то столкнётся с морганием картинок или иконок, мб ему это поможет. На просторах гугла я находил подобные проблемы, но связанные с React Native, а не DOM