Hi,
yes, it is probably cause by a bug when using nasted fork-join. It has been fixed and it is going to be release with 4.4. You can get it now from trunk.
I have ran your process and the result is correct:
[A, B]
[A]
[D1, C1]
[C2, D1]
[D1]
[D2]
[E]
Cheers,
Maciej