If a client has a not-so-not-fresh consensus (<24hr), does he download the whole consensus again directly (by reaching to the directory authorities) or from his guard relay (client<=>guard relay<=>directory authority)?
Thank you
As far as I remember consensus documents are downloaded from the directory guards. Currently, every client has three guards but that's subject to change.
I believe you never download the full consensus but rather only what is needed to build a circuit. (e.g. what is necessary to pick a random path through the network.)
I looked at directory protocol some time back, things may have change and I might misremember. So, you may want to take a look at Tor directory protocol, version 3 specification yourself.