I was always taught that if you have a talent in the music industry you should be compensated for using that talent.
From experience however I think it shouldn't be set in stone. I think if you are young and inexperienced then that experience is worth far more than money. Working for free can give you experience, and exposure. Networking is huge when it comes to the music business. Working for free can open up doors. If you have skill then more doors are opened. But with working for free comes the opportunity for people to take advantage of you. They want more and more of your time and equipment, but you never get anything.
Another thing to think about. If you aren't being paid for something, why are you doing it? What is your motivation to do it better? If you aren't getting anything in return you may find that you aren't putting an effort into it. I took on a task for someone without any charge a few years ago. I quickly got burnt out and didn't want to finish. In my head I wasn't getting anything, so why should I keep putting my effort and talent into it? I really hated thinking like that. I love music, and want everything I touch to be perfect, but I just kind of got tired of it and had no pride to put into it. I think had I been compensated it would have been better. The client was still happy with the product which was the overall goal, but I think in that situation I should have found a middleground for compensation. That hasn't stopped me from working for free, it has just taught me that when I do decide to do something like that I need to make sure its the right project for me.
Lastly its all up to you and what you are comfortable and happy with. Remember that it doesn't have to be money that you make. Maybe you have car problems, and the guy that wants to work with you has a cousin thats a mechanic. Boom, now your car is fixed. You may not have that cash in your pocket, but you wont be spending any cash to get your car fixed. Every situation is different.
No one can say for sure that yes you should, or no you shouldn't. It depends on what you think your time and talent is worth. Don't charge someone retail rates if you don't have a retail product.