I can't speak for Apple, but Microsoft and IBM do have great documentation. The MSDN is extremely extensive in documenting every API they've released in C/C++/C#/VB/F#/OS/WMI/etc, and every release of those can still be looked up so you can see if an API has changed over time. They even provide code examples for most of the API calls so you can see how they are used. All of this is out there for everyone to use, for free. Microsoft understands that by giving out that information freely, it will help more developers write more applications for their platforms, and that is what helps them in the long run. Staffing a call center with knowledgeable support people does not make them money. There is a reason those calls cost so much.
I do remember the documentation for OS/2 that IBM had. It was also super useful, especially in a world before we had good internet sites and search engines. Every API again had descriptions, parameter explanations, code samples, references to related API's, etc.
There are some OSS projects that still try to be this good like GCC, Perl, Python, PostgreSQL, MySQL, Apache, but so many other projects just don't make the effort any more. You mention there is no profit in documentation, but like the free application itself, the profit should not expected to be in money. The profit to everyone is in actually building a user base around your application and If you are not willing to teach people how to use it, then why would you release it in the first place.
In general, if I cannot read about your application or library and how it works then I'm not going to waste my time with it, even if it is the best app in the world. As a user, I don't need to see docs on your code, but I should at least be provided with an installation and user's guide. As a developer, I would expect to see docs in the code so that I can see how things work so I can use existing functions properly and I can make new code fit in properly with the original design.