I understand what you are talking about and have observed such situations as well. So it adds another feature to the landscape.
I am particularly careful with non-profits and volunteering. It is one thing to donate time and energy to good and interesting causes; it's another thing to be drained by vampires.
So, you have to keep track of your hours, for your own accounting purposes. And also consider: is the organization healthy and thriving, or dysfunctional and full of infighting? Are you a respected contributor, or just slave labor?
I'm not hypersensitive and I can tolerate a considerable amount of flexibility in role and dynamics because they can change so much within a group - people come and go and you are also getting some useful insight on organizational and managerial behavior, good and bad.
But if things settle into a really consistent negative groove that way and the bright side recedes too much, it's time to keep moving.
Whether one is volunteering or getting paid for work, it is good to keep Gladiator
(and Machiavelli) in mind. ; )
One last note on that - sometimes I have had to cut back on the non-profit work because things got too busy with clients. I just give advance notice when I see that on the near horizon and I try not to inconvenience the groups where I have been donating time. This happened with a horse-related organization one time, where my work was important to a particular initiative, and it happened with a museum another time. We set up a plan, I pushed some work along a bit faster before I left, and in one case I happened to find a replacement for myself. Neither place missed a beat when I left. Then when I had some free time again, I was able to rejoin the effort.
It has to be understood that way by both sides, or else volunteering is a non-starter.
(Recently, I had to "clear the deck" completely even of my favorite projects, because this economy is very hot and who knows how long it will last. The next financial crash will be fearsome...)
and now I really am off to the Mountain. Have a good day!