Без заголовка
Именно так. Но есть и более простые случаи.
К примеру, суммирование элементов массива в последовательной записи:
res = 0
for i = 0 to n
res = res + a[i]
параллелизуется только с учетом законов ассоциативности. Что означает изменение порядка операций и значит может повлиять на ошибки округления чисел с плавающей точкой, что не всегда допустимо в расчетах. Т.е. вообще говоря, он не параллелизуется без явных указаний компилятору.
Ну и другой случай - даже если последовательная запись допускает извлечение параллелизма, компилятор не всегда сможет это распознать. К примеру, если треугольную матрицу плотно упаковать в линейный массив, для экономии памяти, то компилятор потеряет весь параллелизм.