Actually, I would think it would be much easier, since you didn't have to worry about an API changing on you. *You* define the file format, and that's the end of it. The local/LAN filesystem support I would think would be fairly easy (said the non-programmer who doesn't know a thing about what is easy and what is hard when it comes to programming) - Wink - at least compared to support for FTP - but for that maybe you could add a requirement to install FireFTP and leverage its very mature FTP support? Or borrow code from it? Anyway, sorry, getting excited and thinking out loud...
On the side of gContactSync a plugin would be fairly straightforward since, like you said, the API would be created with the sole intention of storing and synchronizing contacts with Thunderbird and perhaps other sources.
I was thinking that it would be easiest to use a web server and write a simple API with PHP that stores contacts in a MySQL database. The requirements would be Apache, MySQL, and some PHP scripts that I and/or someone else write. Apache and MySQL are both free and open source and already exist on most web servers.
Interesting idea, and I like it - but I'm not sure how this would be considered 'easier' than simply defining a file format/API (custom ldif?), and syncing to a local (or remote) filesystem. This only requires access to the filesystem, no apps (other than TB and gContactSync) required. This format could then be extended to store the raw data in a database for anyone who wants/needs a more robust solution.
Being able to simply sync to a local filesystem would be awesome for organizations like ours that just want to have locally shared address books (some that can be read-only (controlled by an Admin), and some that are fully 2 way syncable), but not require a web server/database to accomplish it.
Many people - especially tech types - already have the infrastructure setup - for example, I have 3 different remote filesystems under my direct control I would/could sync with, as well as a few accounts (rsync.net, dreamhost, etc) I could use (and I would, for redundancy/backup purposes).
If I do go this route I would host it on pirules.org for testing purposes.
I really look forward to being able to help you flesh out all of the bugs...

Hope your holidays were great!