I never liked the fact there is a contacts app which other apps can tap into.
I have started using an org-mode file with entries that have tel: or callto: properties. I lose vCard exportability, but I can use the file as-is instead.
* Open-source
Yes
* Android, Web, and (if necessary) Linux and Windows clients
Emacs on larger devices, Orgzly on Android
* Stores contact info locally (i.e. self-hosted)
Yes
* Stores contact info securely (encrypted)
Unencrypted, but if you don’t allow apps other than syncing apps the permission to access all files, it may not matter as much
* Can store in a cloud location (e.g. Sync, Dropbox)
I just have Syncthing set up to sync those files too
Oh, and. Now I don’t need a separate bookmarks app, a separate notes app, a separate todo list app, syncing mechanisms for them, or a mechanism to search through all of them.