I’ll echo @rumpelsepp - the question is complicated so I’m not sure I get it either. There is a rough description of the sync method Syncthing uses here, perhaps that answers your question.
More specifically, when a file needs to be synced Syncthing knows the block hashes that make up the desired end result. For each such block it’ll try to find it in a file it already has (including but not limited to the old version of the file being synced) - this is a database lookup. If it is nowhere to be found it will try to request the block from one of the other devices that are connected and have advertised that they have it. The other devices will advertise the blocks they have for fully synced files, and files in progress on some interval (it’s not instantaneous).
So yes, there is some optimization going on. But if a file changes on device A and devices B, C, D, E, and F all want it, there is going to to be some duplication in the data they request from A before something C wants happens to be available on E as well.
(There’s two opposing directions of optimization here, we currently optimize for sharing data in the cluster at the price of doing less efficient transfers when there are just two devices: #3692)