я ж не говорю, что дело компилера тупо "разрубить код"...он как-то должен знать сколько по времени выполняется каждый фрагмент и какие зависимости между ними...Программист может вручную осуществить распараллеливание, но лишь (как правило) на уровне событий. Он не должен контроллировать выполнение цепочек инструкций и обсчитывать, какая из них займет меньше времени для выполнения. А в современных процессорах с конвейером это вообще проблематично.