I prefer an accurate mempool to a wishful one.
Discussion
There is no accurate mempool. Everyone maintains unconfirmed transactions based on their policies.
Some transactions are always submitted directly to miners or get mined before reaching our node.
That wouldn't need to happen if all nodes had mempool policies that didn't restrict valid transactions. Filters are pointless if they don't filter. Knots nodes have to ask for confirmed TX that they should have already known about from the first broadcast, but rejected. Bad peer! Disconnect!
They cache rejected txs, they just don’t relay them.
This is usually the point the Core side stops replying to. Still have to understand why.
Some mempool policies in core will always restrict transactions for various reasons. They still exist in core.
In an ideal world all nodes will have the same mempool but it's not the case in reality.
Rejected transactions are saved but not relayed and there are options to set the size in knots: https://github.com/bitcoinknots/bitcoin/blob/v29.1.knots20250903/doc/release-notes.md#p2p-and-network-changes
So there is "spam" in your knots mempool, you just don't tell others about it?
Or is it cached somewhere else?