Well, there is a somewhat questionable way to earm miles on these types of events, where you can raise money for a charity...
If your friends and family don't need the tax-deduction, then have them give you cash or a check in your name. Then donate the money with your miles earning credit-card. You get the tax-deduction and you get the miles.
This is really great if your friends and family don't own property or just can't itemize their deductions. If they can't itemize then there's no point for them to donate directly to a charity as it will not benefit their taxes in any way. The question is, are you honest enough to donate this money, and should you benefit from others' good deeds?