So far I sync via git, which sort of works but is definitely not great on mobile.
My current setup (syncing between home and work laptops) is to auto-save files every few second in emacs, and "git pull; git commit -am `date`; git push" every few minutes in a cron. Works like a charm.
edit: I also do "git add * .org; git add * .org_archive" inside the org folder before the commit, in the same cron job.
Well, yes, immediate sync should work, all merges would be fast-forward except for a vanishingly rare case of two conflicting simultaneous pushes.
It's not very practical if one of the devices is mobile, so it's not always online, and parallel changes may build up sometimes.
BTW do not blame org for the mobile crappy OSes we have, they are not designed to serve us but to serve vendor leaving us small crumbs, milking us for commercial purpose.