I have been reading quite a few books on English grammar and usage. Practical English Usage is one of my favourite. Among other things, Meaning and the English Verb, Modality and the English Modals, The Cambridge Grammar of the English Language, A Comprehensive Grammar of the English Language etc. are all first-rate reference books.
However, I still run into various unfamiliar uses when reading English novels, news, movie scripts, and so on. (For example, in https://english.stackexchange.com/questions/187936 FumbleFingers explained the meaning of "I should have known [something]" on which I couldn't find one bit relevant information in the books I have.) I can't help but wonder why even the most comprehensive grammar books couldn't cover all these uses. Therefore, I have to spend lots of time on the Internet in a search for any possible good explanations. Fortunately, I often stumble upon findings of great value.
The following excerpt is taken from one of my recent finds, Aspects of Modern English Usage for Advanced Students: A Comparison with French, by Paul Lambotte, John Potter, Harry A. Campbell. It addresses lots of usage problems in a detailed and innovative way. I think it's time for me to return the favor that ELL has done for me. :)
§ 506
1) 'Will have' is used to make an assumption about an action or
situation in the past when the speaker considers something to be
certain (modal certainty), which does not mean that it is certain, a
fact (factual certainty), it generally refers to the recent past, when
the speaker is most likely to be so assertive.
- Peter has never been hardworking. He'll have dropped out of the scheme by now.
There is an assumption, not a logical conclusion, because you have no
evidence on which to base a conclusion, only your general knowledge.
2) 'Will have' is not common at all to reter to the distant past and
more especially to express a theory about the past. e.g. in historical
studies, because it would make it appear too certain in the absence of
adequate factual evidence. The standard phrase in this case is 'would
have', which makes the theory more cautious, more tentative. (See §
509.)
§ 507
'Would' is used to indicate a little less certainty in the assumption
than would be the case with 'will'. This past tense form of modal
'will', like that of 'may', with its conditional connotation, makes
the judgment more tentative. The term 'conjecture' is meant here to
refer to the tentative form of assumption.
About a building you cannot see properly in the distance, you could say:
That building would be about ten storeys high.
This opinion is based on a rough estimate and you are not sure that it
is correct. 'That building will be...' sounds more confident.
§ 509
'Would have' is the usual phrase to express a theory about the past,
i.e. in historical accounts when there is hardly any doubt about it.
It states what most probably happened, what things were most probably
like etc. in the absence of evidence stating those things as facts.
‘Will have’ is uncommon in this case because it is too close to an
assertion for what is, after all, only a theory.
(In Old Sturbridge Village, an American living museum where young
craftsmen revive the eighteenth-century trades, explanations often run
as follows :)
- They would have baked their bread in this way...
Here are two examples from 'Chasing the Monsoon' by Alexander Frater
(1990) :
One of da Gama's preoccupations would have been the safety of his fleet.
Each year, between 1852 and 1869, usually between the 6th and 7th day of June, he would have noted the appearance of the Monsoon Star.
The use of a simple past - 'was' and 'noted' - would imply that we
actually know from e.g. his diary that it was indeed one of his
preoccupations and that he noted the appearance of the Monsoon Star,
but we do not know, we only assume that it was so.
§ 513
The speaker is looking at the past from the present. As the judgment
is made in the present, the model is in the present tense, while the
pastness of the action/situation is expressed by the perfect
infinitive. (See § 508.)
'Will have' can only be used to make an assumption about the recent
past (See § 506.)
'Would have', which expresses things in a more tentative way, is the
usual way of expressing conjecture -and more particularly theories
about the distant past. (See § 508,509.)