They are different times, Anon. #1-- S/he is asking about a dinner in the past. #2-- S/he is asking about a dinner in the future.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.
Mister MicawberAlthough the result in real life may refer to a real present situation, it is not a grammatical present.
Mister MicawberShe will have had dinner by now. (more certain)
She would have had dinner by now. (more tentative
Mister MicawberI think we must keep the name. The form has a name; it just serves various purposes. That is why contemporary grammarians are trying to get rid of the word 'gerund', for instance, in favor of '-ing verb form'.