I mean, is it based on the assumption that all notes are edited only by one person, or by a collaborative team?
For the former, the sync process can be much simpler than for the latter, and perhaps even simpler than what Joplin does now (I'm speculating).
Here are the dev docs for sync
As far as I understand, assumption is that several clients are updating from one sync target, one at the time
I'm not sure what way you refer to to simplify it
When you say "several clients", do you mean several devices used by one person, or by several persons. If it's by one person, then there is no "multi-tasking", i.e., he uses one device at a time. If by several persons, then the versions of a note can be complicated.
It can be done by several people, however editing the same note simultaneously is not supported. This is different from services like Google Docs or Office 365 where multiple people can work on the same document together.
In other words, you can perform modifications on different devices at the very same time as long as the notes which you work on are different.
Does Joplin enforce that, or is it left to the user to decide?
For simplicity sake, you may say that it is a single person with multiple devices i.e. simultaneous collaborative editing is not standard feature of Joplin's sync AFAIK. However, multiuser collaborative editing is supported by Joplin Cloud but I don't know how it handled in sync algorithm
Can you elaborate on what you mean exactly?
It's basically the same as if you modified different notes on multiple devices yourself first (not necessarily at the same time) and only then synchronised the modifications.
On the other hand, if you try to modify the same note on multiple devices and then try to sync that, you will end up with conflicted copies.
Indeed, at some point in the future, it would ideal if the app improved the syncing heuristics, but that's … challenging, and at least in my world, not a priority.
I am the only person to edits my documents. I sync to three devices and I pay for Joplin Cloud (which I am very happy with). I try to be extremely careful to ensure I save and sync from one device before syncing and then editing using a different device. And yet I still end up with conflicts from time to time.
Now, it is just me, so I don't lose sleep over it. BUT. This could be improved.
So, to answer your question, "Does Joplin enforce that, or is it left to the user to decide?" The answer is Yes and Yes. Syncing integrity is enforced by, when there is a discrepancy, a copy of the note in conflict (the local copy, I believe...) is tossed into at Conflicts notebook. And resolving the conflict is left to the user. You have to ... figure out where those differences lie (there is a Conflict Resolution Plugin that I have not tried yet).