Обнаружилось странное. Если создать проект с нуля, используя последнюю версию Xcode, то при запуске приложения метод viewWillLayoutSubviews вызывается всего один раз. При этом в нем не доступны реальные размеры вью и всех его сабвью. Фактический размер вьюшки отличается от того, что на консоли. Пока не понял, баг это или фича.