I agree with and admire all of the above. There's a huge difference between giving freely at one's own option, and taking.
(I like to THINK of taxes as being more like usage fees or a subscription for living in a society that is more hospitable than Somalia or Beirut. But they aren't really voluntary unless there's an accessible frontier to which one could emigrate.)
I don't know if database and GUI software use the same terms, but embedded control SW talks about sharing information by either a "push" or a "pull" style.
In "push" style, as soon as my module creates or discovers some information, it pushes it out to any module that it thinks might need the info.
In "pull" style, every module just makes its info freely available - and then any module that wants it, just "pulls" it when needed. Usually "pull" works better in control SW.
I think that's easier with SW than people: if people make every bean they have freely available to anyone at all, the greediest people would soon have all the beans!
The nice thing about information is that you can give it away all day, and still have just as much as you started with.
With people, either "push or pull" (offer or ask) can work, as long as people are willing to share when they can, and people are willing to ask for what they need.
It's hard to be a hoarder and a good neighbor at the same time!