This was not a bug, it was a design decision (source: https://github.com/coreos/etcd/issues/741 ) . You can get stale data in some circumstances because they wanted to avoid the performance penalty of ensuring the latest really is the latest value from a quorum of followers.
There's the design decision, and then there's the incorrect documentation that says reads with "consistent=true" are guaranteed to return the latest value.