This ensures that AcceptToMemoryPool initiated from RPC does not deviate
from the network fee policy (e.g. net_processing). Note RPC still has the
nAbsurdFee thing, but that is purely restrictive and optional so it's OK.
Since the default is -limitfreerelay=0, the discrepancy meant that any low
fee, high priority transaction broadcasted from sendrawtransaction would
end up stuck in the mempool of that node, and no peers will accept it.
This has been a frustrating issue for various light wallet users where
their portal ends up running through sendrawtransaction and they end
up having low fee transactions get apparently "successfully broadcast"
yet stuck forever since they don't get accepted upon relay. The issue has
been seen in two popular wallets: Electron Cash, bitcoin.com wallet.
There remains one callsite with fLimitFree = false, namely
updateMempoolForReorg. I suppose this is better than having =true, and it's
not really something that matters much for everyday usage so let's not
deal with that here.
A few functional tests had to be fixed as they relied on this quirk of
RPC to accept lowfee transactions (they would have failed if they used
submission via net). A bug was also exposed in the fee calculator (caused
dbcrash to fail). The 'high priority transactions' test has also been
updated to check default behaviour, and probe both RPC and net.
Depends on D4729