in v0.12 #7081 (by @luke-jr) was merged adding -bytespersigop (with default of 20).
this is preventing simple bare multisig transactions from being accepted into mempool when the size is < 400 bytes.
eg; https://gist.github.com/rubensayshi/ac4f617207f7a50559e85d61c05800be
from 1-of-7 and onwards they are accepted because the ratio of bytes:sigops is high enough.
also having 2 or more inputs will work because it again tips the ratio of bytes:sigops over.
the reason mainly being that GetLegacySigOpCount calls GetSigOpCount with fAccurate=false.
It looks like changing GetLegacySigOpCount to use fAccurate=true would cause side effects in the few other places (ConnectBlock, CheckBlock, CreateNewBlock) and simply adding fAccurate as arg to GetLegacySigOpCount would affect the value stored in CTxMemPoolEntry.sigOpCount which in turn affects a bunch of other things.