Free software can permit end user to take control over software. If enduser cannot develop he can ask help from developers. There are many way to ask help : - calling friend who can help - calling paid services - build a user community permit better fund raising. - etc
Human create for its pleasure or for simplify/automatize its work. Libre reusability is a good way to work only one time on one job ; it allow anyone to gain time by reuse all things that humanity already performed. Humanity doesn't need to do the same thing twice. Once is enough.
Without the resources often allocated to proprietary projects it is difficult to get developers to work on your project full time unless your project is seen as important by them which impedes progress. Free and proprietary software both have their respective advantages and disadvantages.
Geeky software should be free. Boring but necessary software needs to bring profit, unless it is hard to get a decent one. That's why lots of end user facing software are for fee, but libraries are free or open source.