A core feature of MongoDB is the ability to perform atomic operations – i.e. single document transactions. However, this then implies a need for a primary/secondary architecture for replicas; for a given shard, all writes must be sent to the current primary. In multi data center systems, the primary may not be in the client's data center.
This jira proposes allowing the user to specify some weight or affinity for (super)chunk ranges to help the balancer decide which shard has which chunks. Different shards would then (when healthy) keep their primary at the appropriate data center.
This would be important when trying to build regional shards for multi-datacenter clusters where user/regional data should be kept in the regional shard(s). It would also allow the user to indicate that contiguous chunk ranges should be on the same shard(s).
This would depend on the ability to make the shard/replicas datacenter aware. Without both you can't create shards that can be used in a region to do local writes to that region.