Among other uses, the auxiliary verb, would, is used to express an assumption, presumption or expectation in the past. The "would (and in some cases should) + present perfect" is formed with the present tense of have, and the past participle of the verb
would/should + have + past participle
Despite the appearance of would, this is not the past subjunctive because there is no "if-clause" (protasi) present in the sentence and none is implied. The subjunctive is used to indicate conditions that aren't true, that might have happened in the past, but didn't. In the OP's example, however, the speaker is speculating as to when they last saw a horse and carriage (many years ago). Knowing that horses and carriages are a rare occurrence, the speaker assumes that it happened a long time ago.
When was the last time you saw a horse and carriage?
~ Well, that would have been quite a while ago - they are quite rare these days.
Compare that sentence with this one:
He would have seen many a horse and carriage (but he hadn't), if he had been born in the late 1800s (but he wasn't, the speaker was born in the 1980s).
In the if-clause the subject wasn't born between 1880 and 1899; therefore, he has never seen carriages pulled by horses (except maybe in the movies). The subjunctive mood tells us the hypothetical result of a contrary fact in the past.
Advanced Grammar in Use Martin Hewings (units 7, 8, 99)
Advanced Language Practice Michael Vince (Unit 12 Modal auxiliaries 2: past, page 66)
A Practical English Grammar A.J. Thomson A.V. Martinet (160 will and should for assumptions; 231 C should/would have expected + infinitive construction)
Adapted from an old EL&U answer