The flipside of this is that Walmart does not charge extra for small, individual items, and I suspect they're losing a lot of money by doing so. I'm a heavy Amazon user, but as an experiment (and because I needed some individual toiletries) I ordered ~15 items from Walmart.com. Walmart's answer to this shipment request was to send 5 separate packages from different places and taking anywhere from 1 day to 10 days. Shipping transit estimations were all off. One shipment was just a single loofah. Just a very annoying process altogether.
Even with these add-on products Amazon is basically forcing you to adopt a Costco / buy-in-bulk model, and I think it's the only profitable and sensible direction.