In-master, if a package is entered into mempool at the lowerst chunk feerate, pushing the mempool oversize, this causes that transaction (package) to be trimmed immediately. This is fine and expected, but the returned validation result TX_MEMPOOL_POLICY precludes the now-evicted parent from being considered again (i.e. fetched / processed as package) until after another block is found.
This is not a major issue, but would result in unneeded censorship of someone low-balling package feerates.
The already-in-mempool case needs a bit more logic due to the FeeFailure's requirement of package feerate knowledge, so I opted to use the "would have used" value even though it was never directly submitted in the same-txid-different-wtxid case. Alternatively, we could simply get rid of the FeeFailure value as IIUC it's not used in non-testing code. This may be a larger code change but could make the resulting code more maintainable going forward. This could also be future work.
Related to finding made by Loupe, and subsequently Red Team.