No, and no. What you can do, however, is build your own load balancer(let’s say in Go) that monitors Dgraph’s state endpoints. That way, it can handle the behavior you’re aiming for.
I had been thinking about creating some kind of proxy to do exactly that, but I never actually got around to starting it.
I believe this happens because all cluster state changes must go through the leader. In a clustered setup, the other nodes basically act as proxies for the leader. They need to forward and replicate transactions to it. That’s why it adds more overhead: more network communication, more serialization and deserialization, and so on.