This hasn't got much, if anything, to do with Go specifically; in particular, I've been aware of everything I write in this post since before I was even aware of Go. The OS support is just too variable and shot through with subtle-yet-critically-important semantic differences, in addition to the fact the problem is harder than it looks at first. Trying to write a lowest-common-denominator API leaves you with a really low LCD. Trying to write a higher level API that offers the more convenient stuff leaves you with an API that makes it trivially easy to write something that works really, really well on one platform and is completely non-performant on another (in particular, trying to automatically "recurse" on the directories). It turns out there's no happy middle here for the general case.
Plus syncthing is an entirely different use case from glusterfs. Think Dropbox, not one-filesystem-across-many-machines.
besides, this lib only cover one sync scenario and only one and does it only on demand. might be fast because it stores the hash somewhere, but that also means you'll run in issues if the mirrored slow drive content changes by any mean.