Я думаю, что вопрос делает ложное предположение, что компиляторы всегда хотят устранить дублирование кода. Дублирование кода плохо для удобства чтения / поддержки исходного кода, но не обязательно производительности скомпилированного кода, на самом деле можно развернуть цикл как компилятор, добавляющий дублирующий код для увеличения скорости скомпилированный код не должен следовать тем же принципам, что и исходный код, и, как правило, не соответствует тому, что машина должна читать не человеку.
Как правило, компиляторы заняты компиляцией, а не преобразованием исходного кода, конечно, IDE могут разрешать и то и другое.