а какая разница будет между
set (() {a = 2})
и
a = 2
set (() {})
??
Думаю что конкретно для вашего случая никакой, но содержимое внутри setState нужно рассматривать как транзакционный блок, т.е. если там надо с чем то сравнить, и в зависимости от этого разные значения, то содержимое замыкания защищено от любых гонок