It isn't just an idealistic view, it is somewhat counter to the view where source is the ultimate documentation.
This is especially true in projects that don't have the resources to maintain a well done documentation site with the source.
It is also completely counter to attitude of the most successful open source maintainer, by many measures.[1]
1. It's documented to return `null`. The fact that it returns undefined in some edge cases is a bug. If you want to be nice about it, you can approach them and explain the upcoming behavior change as a heads up, however it's still a bug that should be fixed.
2. No sympathy for those projects here; you can't use undocumented/private interfaces and expect them to be officially supported. I do it myself, however I do it with full knowledge that every single version change is potentially breaking to me, and I make sure to have unit tests to confirm the behavior still exists in X version. I may also approach the project and say something like "Hey, I found using X undocumented interface is actually really useful, how can we expose this as an official thing?"