Bitcoin Core has a cache for transactions that aren't in the node's mempool but could be in other mempools, and so are cached for improved compact block reconstruction. This cache holds up to 100 transactions by default and this number can be changed with the blockreconstructionextratxn configuration option.
What interests me are the inclusion and eviction criteria for this cache. Does it only hold transactions evicted from the mempool, or also transactions that were never accepted into the mempool due to policy? If that's the case, what policy does it use to prevent DoS attacks? And when the cache is full, how does it determine whether to include a transaction and evict another, and which one to evict? Is it based on feerates, last-in-first-out, or something else?