OOTB there is no way to define Data Propagation between sibling cases using the Case Designer.
Data Propagation is from Cover to child and takes place at the time the child case is spawned.
Are you thinking of the situation when a subcase is launched based on sibling case dependency, for example when a sibling case reaches a particular work status only then is a different subcase type created?
The propagation is still from parent to child.
In theory a child case could update the parent case prior to reaching the status that "triggers" the sibling case to be launched,
Granted this a roundabout way of communicating the data between siblings, but is doable.
I understood your solution but i have just reiterated that below to make myself clear so that we both are on same page.
If I take the above stated class structure, before Work 2 reaches say "Resolved-Completed" status I should update the data to be propagated to sibling in the cover case Work1. And then in the case designer I should have made that data propagation of those elements from Work1 to Work 3. In this case when case Work3 is spawned off the data is present in Work1 and will be carried over to Work3.
I personally prefer Work2 -> Work1 -> Work3 as there is just one Data Transform that I have to code to copy Data from Work2 -> Work1 and the rest can be configured in Case Designers Data Propagation area.