Я думаю, вы поняли это правильно.
(1U) Я подозреваю, что лексический анализ компилятора распознает «unsigned», в то время как (unsigned int) 1 будет операцией времени выполнения.
Как говорится в комментариях, скорее всего, он все равно будет оптимизирован для вас.
Как правило, не пытайтесь обдумать компилятор. Делайте то, что вам кажется наиболее читаемым, и беспокойтесь об оптимизации производительности, как только станет ясно, что у вас есть проблема.
Я могу гарантировать, что * это никогда не вызовет у вас проблем.
* гарантия недействительна в дни, заканчивающиеся на Y.