I remember reading at one point that on some older systems sync could exit as soon as the fsync started, but if you did sync;sync the second one could not start until the first finished.
so sync was not enough sync;sync would do the job, but sync;sync;sync is what people ended up using.
this could be yet another myth, but it seems to match the facts that I have run across on the topic