I used to sing at weddings at my church as a paying gig which i loved. If a friend asked me to sing for their wedding, i would absolutely do it, free of charge.
however, that being said, obviously i was comfortable with it because i did it as a paying job all the time for strangers. i would exercise caution if you're asking someone to do something that they don't normally do...they may feel pressured to say yes even if they really don't feel comfortable doing it.
Also note that asking someone to sing/play an instrument in your ceremony isn't generally an imposition, so even if they are a professional, i believe that most people would gladly do that for a friend for free. but if you're talking about something that would truly take up the entire event (asking a friend to be your photographer or DJ or wedding coordinator for example), i'd reconcider. You shouldn't ask someone who you would have ordinarily invited to be a guest at your wedding to be a vendor instead. Working will make it impossible for them to enjoy the day. And if i were in that position, i would absolutely not do it for free. Agreeing to sing for free for a 30 minute ceremony and then going to the reception as a guest is fine...agreeing to basically skip all of the fun to work instead requires payment in my opinion.
At my wedding, two close family friends sang one song during the ceremony and a man from my mom's church played the guitar for the one song plus the Pachabel Canon for when I walked to the altar. All three people regularly perform at the church.
My mom arranged it all so I admit I'm guessing on the details, but I think the family friends were unpaid...but were guests at the reception. Knowing my mom, she probably offered to pay them and they declined. I'm pretty sure the guitar player was paid something, but he didn't stay for the reception. In fact, now that I am thinking about it, I didn't even see him to thank him. He must have left right after the ceremony. Now I feel a little bad! lol.