I don't think clients should run relays. Not doing so forces clients and relays to come up with an incentive model for the service they're offering. If a client runs a relay for their special purpose, the relay is artificially supported by the client service. If the incentive model for other relays to exist doesn't exist, the client becomes a centralized service with a front end and a database for the majority of users.
Of course, you could run your own to experiment with how such a relay should operate, but an accepted model for relays to accommodate encrypted data needs to emerge.