Interpreting results from "bitcoin-cli getmempoolinfo"
After some digging, I believe I have an explanation: the memory pool is clogged with 'junk' transactions.

Bitcoin Core's minrelaytxfee parameter defaults to 0.01 mBTC/KB, which is "too low" in the sense that it permits TONS of 'junk' transactions to enter the memory pool. I've bumped minrelaytxfee to 0.05 mBTC/KB and the results so far are very encouraging. The memory pool profile now makes sense, from the # of transactions to the size of each transaction.

And minrelaytxfee=0.00005 strikes me as "fair" as it is one-tenth the broadly recommended transaction fee of 0.5 mBTC/KB (backup up by the Pareto breakdown of real transactions on various websites).

I encourage everyone running Bitcoin Core can make their own decision on minrelaytxfee for their full node.