Syncing at db-file level would create false sync conflicts when making edits while offline. You may even lose data, depending on how Dropbox/Syncthing resolve file-level conflicts. For fully automatic sync, you need to operate at the level of records.
> You may even lose data, depending on how Dropbox/Syncthing resolve file-level conflicts.
It's even worse - Dropbox can corrupt the database file even without conflicts - it's not safe to copy database file which is currently open in some process since it can change within the reading operation. I mean, the original file stays OK, but the copy will be likely corrupt (and in this corrupt state synced into another instance).
For safe copy, Dropbox would have to force some FS-level snapshotting, but that would halt all database operations. I have received few bug reports for my app which were eventually traced into attempts to sync it with Dropbox and similar services.