Send me an email and I'll be happy to go into more detail. (I'm on a plane which is hopefully taking off soon, so I don't have time to write more right now.)
- Make it easy for people to host data independently of you. Either by running your app on thier server (related to discussion above about for Heroku/Sandstorm, but a regular VPS is probably preferable), or using your client to read data stored in some generic format, e.g. an existing CardDav server, or even just Dropbox, with the web UI running locally, or as an extension.
The most important features for self hosting are probably maturity and stability, and signed releases via an up-to-date PPA.
For using some generic back-end you'd need to support it.
Theoretically, running the software on a server in Sealand or something like that would put the physical hardware beyond the reach of a subpoena but then, they could lock you up for contempt if you don't give your password to it.
For example: if, unbeknownst to you, two of your friends were involved in some kind of criminal conspiracy and you had spoken/met with both of them near the time it was known that they had met, an enterprising prosecutor could use your record of having met with them to accuse you of having taken part.