Читеры! Я вообще смотрел QWidget, в лейаут не догадался.
Странно, что мешало им сделать d->sizeHint mutable? В этом случае это было бы оправдано.
Ведь он по сути хранит кешированное значение. Так был бы более красивый и понятный код.
setupGeom() изменяет 7 (!) переменных. Если их все сделать mutable, то проще const не писать