You either need to read more carefully, or you do not understand what "sync" means. Please do not add to public confusion about this.
1. Synchronization means making two directory trees identical -- same files, same count, no more, no less.
2. If tree B (destination) has more files than tree A (source), sync deletes files from B so it agrees with A.
3. If tree B has fewer files than A, files are added to B so it agrees with A.
4. If tree B has the same number of files, but different contents or dates, the sync program replaces them with files from tree A.
5. THEREFORE, ERGO, the operator MUST say which is the source, and which is the destination.
For the life of me I can't understand why people find this so confusing.
> Sync has always meant merging semantic changes in state between two or more devices.
YES, as clearly explained above. And that means if the user chooses the wrong source, for example a device with no music tracks, then the program will dutifully erase all the music tracks from the destination device.
> iTunes in the grandfather's case, chose to merge incorrectly and lose data.
Yes, but that outcome resulted, not from an error in iTunes, but from the user misidentifying the source device, and that, in turn, resulted from his not understanding sync, a misunderstanding that he revealed in his post by attempting to rely on an incorrect dictionary definition of the word.
EDIT: consider this hypothetical example.
1. Directory tree A has 9 files.
2. Directory tree B has 10 files.
3. In your description, the user doesn't have to say which is the source -- no user intervention is required.
4. If so, without user intervention, how does the sync program know what to do? Does it add a file to tree A, or delete a file from tree B?
Think before answering.
EDIT: Readers, do not downvote posts simply because you're confused. Ignorance is not a justification to cast a downvote.