This is a very thoughtful and detailed take. Thank you. I was thinking of doing something like client side field level encryption because I personally think the product will be better that way. This type of encryption would protect against data theft even if someone got hold of db access, since they would only see encrypted strings and binary buffers.
It's a good idea to point out to be careful, since getting locked out of your own data would certainly be annoying.