This changes sharply if you’re buying for more people than just yourself.
The reason I haul entire shopping carts at once is because I don’t want to waste time shopping every day. A big 2-hour haul per month vs. 1-2 20-minute trips to the local corner konbini every day. Plus some of the bigger bulk stores deliver (this is Hinode, Tokyo; rural ones probably don’t).
Buying in bulk is far less expensive: you pay less (duh), but you spend a lot less time on it too. If I’m buying groceries just-in-time and the nearest shop doesn’t have the ingredient I need that day, I have to go to a different shop for that one item. Lots of time wasted, and a lot of stress on top. You can’t change your mind later either, because you’ve already bought ingredients for that one meal. So I prefer to have things buffered in stock, and resupply in advance. You also use far less plastic packaging that way, e.g. buying a 25-liter premix syrup canister instead of hundreds of coke bottles.
Not at all, each package has a regular dependency tree like on any other distro. The difference is that each package can see a different subset of dependencies so you can have multiple versions of a library. What would be a version conflict on most distros here just means you have two different libsomething side by side. The /nix/store on my desktop is roughly the same size as my Gentoo /usr.