if this project is going to go anywhere, the scalability of the server needs to have some kind of solution. CouchDB is an erlang app. Erlang is, from what Ive read, the best possible platform to use for a web service. Highly parallel, fault tolerant. Each icecondor client will communicate directly to a couchdb server. The client can point its reads and writes to one or more servers which the user will define with a URL. CouchDB uses a map-reduce system, which is the power behind google's search engine.
I think in terms of middleware. An application on an application server in between the client(s) and the database(s). This is different. I like the idea of direct pushes to couchdb. Its easy for anyone to setup their own storage engine and the replication comes for free. A server will still exist, with its own web interface for the web-browsing public, that communicates with couchdb for web-based reports, large scale dataprocessing, etc., remote client configuration, account management, etc..