> you put a license on your work that (often, but not always) says people need to share their changes
Permissive licences do not say that. Copyleft licences say that people need to share their changes with their users.
As a maintainer, if I choose a copyleft licence, it is to protect the users. If someone makes a product using my code, I want the user to be able to see that code even if it is modified. It does not mean at all that I am interested in adopting those changes in my repo. No need to be prepared for it.
> maintainers do owe this culture some form of communication of their intentions
I disagree. I already give you my work for free, that's something. I don't see why I should get out of my way to communicate my intentions. When in doubt, you are free to contact me (e.g. open an issue) and ask. And I am free to not answer.
> My personal issue: I spend hours working on preparing an Issue or PR to fix someone's project, and they ignore or close it without a word. Now I don't want to contribute to anything. This is bad for the open source community.
Happened to me as well, and it is very frustrating. But that's on me, I should have asked before doing the work. It has happened to me that I asked, the maintainer explained what they would want, and then I spent weeks in my free time working on a PR that never got reviewed. Just because the maintainer didn't have time. It is frustrating, but I am not entitled to anything. My PR can live in my fork.
If I need my PR to be merged upstream such that the upstream project takes ownership of it and maintains it for me, then I should look into a contractual relationship with them.