Let say that you have 3 blocks A, B and C. The block A is a dataset block and the blocks B and C are regular blocks.
When you create a connection between blocks A and B, the connection uses the synchronization channel from A. Right after that, when you try to create a connection between the blocks A and C (using the same field on the "A" side), the synchronization channel is null, which invalidates the toolchain. Additionally, it is not possible to fix it.
In the same example as above (blocks A,B and C), when you create a connection between the blocks A and B, it is not possible to create a connection between A and C (using the same field in the "A" side). The only possible way is to create a connection between C and A. I know this is the same thing, but it is not intuitive.