E.g. you got webservices talking over HTTP. One goes bad, you want existing clients not to talk to them.
Smart Stack: you are using HTTP proxy on each machine. You're code doesn't has to be aware of who is talking to.
Consul: Not sure, but it sounds like server code has to be able to handle events to change that.