Why not see it as a way to vote ?
I see it as a way for me to put my money where my mouth is.
You could use it as a way to help prioritize features.
For example. I am playing around with construct. *noob* But I have to reboot into windows just to use it. So... i'm really not that motivated to donate to the project. But, if i was able to vote in this way I could show how much I would like it to be ported to either linux or Mac OS X. I wouldn't see it as a contract. It would be a way for the project to get some needed funding and a way for me to give voice in a very real and tangible sense. I wouldn't be upset if a feature I voted for never got finished.
You could say that just because you pay for a feature in this way doesn't mean it will get implemented in any time frame. Nor if the feature with the most "votes" will get implemented before others. But that it will be used as a way to see what the community would like.