The rpc from mongoS already passes both the internal (mongoS) client info and the external client (application) info into the shards and config servers, the info being host:port and client metadata. However only the mongoS client info is exposed in the Client class. For diagnostics and logging purposes, it would be useful to expose the external client info too.
From a conversation with ben.caimano: we encode external client information here. However that is only used in the mongoS hello implementation here. I don't actually see anywhere where it is parsed on the client side. In theory, we could attach this information when it is first seen like we do with other metadata. Then all commands after that hello could access it.