[programmer perspective]
Even if you put yourself out cheaper than you're worth, you should still charge something. At the very least, it might help ward off developers that won't actually finish their game.
Also, I like cheap! I like free! But nsmadsen is absolutely correct that you shouldn't sell yourself short, and you shouldn't devalue your own time and effort. Be reasonable, but don't be cheap without a very good reason.
If a "studio" doesn't have enough to pay you at least a semi-decent wage, what's the liklihood they have a big enough budget to pay for enough advertising, legal advice, and other assets like art, that the game will become a big enough hit to actually get you any kind of attention whatsoever?
Games like Bastion and Minecraft and Braid would get you alot of attention. But they are 1 in 10,000, so that is hoping for the lottery.
Instead, you should get paid (upfront) and get credit. Now if the project really interests you, and you personally believe the project will get you exposure, then you could reduce your price. Or if a project won't be successful, has little funds, but you want to contribute charitably to it because it's open source or something.
But don't let people pay you in promises - they don't have guarantees that their game will get recognition, so how can they promise to pay you in exposure they don't have?
[/programmer perspective]