100 private keys is probably NOT the way to go. It is complicated, and ugly (it could be an option but not standard(
Proposal: One private key should be standard. It should not be in hex, bas64, or anything else ugly. One thing that could work would be a sort of dictionary encoding, where every 20 bits or whatever is mapped to a word. The word in the dictionary would have to be carefully selected to be positive, or at least neutral. If this is chosen, there should be a "generate new address", so that people could click until they found one they were satisfied with.
I completely agree with the direction of your original post, and most of the ideas you present.
Regarding the idea of using a dictionary to map receiving addresses to words, it seems quite clever, maybe along the lines of how the Amazon payphrases are constructed. For fun I tried implementing this using a spell check dictionary of about 500,000 mixed English words, with punctuated words removed. My address:
1samr7UZxtC6MEAFHqr1h3Kq453xJJbe4
translated to:
Chaplinesque-stuccoworker-prevail-unadduced-gola-focalisation-fettlings-undependent-kulkarni-Canadian
The dictionary I used is broad and isn't limited to the emotional connotations you're looking for. Creating such a dictionary will take a lot of people more than 10 minutes, and would be shorter, potentially requiring more words per address. But whatever dictionary is selected, the choice would bind us to the locality that dictionary comes from, i.e. it would make bitcoin American-English centric.
So, is this any more palatable?