I was reading a French grammar website and I saw the following piece of information:
Des bêtises, j’en ai fait ! = J’ai fait des bêtises. Ici, le COD est « en », qui reprend « des bêtises ». Dans ce type de cas, « en », étant complément d’objet direct du verbe, ne peut être enlevé de la phrase.
Mais il arrive que « en » puisse être retiré de la phrase. Il n’est alors pas complément d’objet direct, et le participe passé s’accorde avec son véritable COD :
Il se rappelle son enfance et nous raconte les souvenirs qu’il en a gardés. (COD) Ici, le COD est « que », qui reprend « souvenirs », et non « en », qui représente « de son enfance » (> il nous raconte les souvenirs qu’il a gardés de son enfance).
Unless this is some advanced form of grammar, it has very much confused me as que seems to be operating as a relative pronoun here, not as a COD.