Что свойства LLVM делает это хорошим выбором для реализации (параллельный, параллельный, распределенный) - ориентированный на язык, что делает его плохо?
LLVM не зря называется LLVM (виртуальная машина низкого уровня). Он настолько низкоуровневый, что вы не привязаны к какой-либо конкретной семантике исходного языка.
В LLVM есть некоторые полезные вещи, которые упрощают компиляцию некоторых параллельных языков - например, переход к произвольным блокам: http://llvm.org/docs/LangRef.html#blockaddress
И LLVM делает не подразумевает каких-либо конкретных свойств времени выполнения, не требует какой-либо конкретной реализации GC. Вы можете построить на нем все, что захотите.
Некоторые практические примеры в этой области см. http://code.google.com/p/gpuocelot/ . Это позволяет коду Cuda работать с несколькими целями на x86.