Kind of OT for this post but I think it would be good if someone could build the what would have to be a lot of bloat and complexity into core and the protocol that would allow a 2nd mempool so to speak that only has 0 fee tx in it.
It doesn't seem to need that much complexity and definitely not a secondary mempool. It only needs a new condition to reduce the minimum fee from x to 0 either manually for all conditions or automatically when the mempool size drops below a certain size.
That would leave it open to abuse. Mempool small enough to get in a 0 fee TX, send out all these TX to bloat it and push the fees back up. We all know that people would do that.
Having a 2nd separate one would eliminate that. As I said, I really really really don't think that would ever happen, but it would be nice.
-Dave