I think the blame for this lands on the people accepting the low-fee transactions. They're the ones breaking expected behavior.
Let every transaction be relayed - then the receiver can use CPFP to get it confirmed. Wallets could warn the user if the the fee is very low and probably won't get into a block.