I am curious, why would you go into the project thinking rsync and not git? It seemed to me most of these syncing folders are really a special case of source code control.
E.g. the quite feasible scenario with two computers, both partially synced, and both getting files changed/added/removed/moved while the sync is happening. Consider applications creating temporary files while a document is being edited, and expecting to be able to create those files... and then it results in some app being unable to open the same document because it's "already open" on another machine. There are all kinds of interesting conflicts and race conditions possible, and you need to resolve them all in some way that doesn't weird out the users.