Slot players are incredibly profitable. High theoretical loss and the casino is basically paying floor space, wait staff and the machines. For that level of service, your buddy might be maxing betting penny slots. The casinos also have the risk of ruin going for them. The 10% theoretical return is long run and heavily weighted by max payouts (think lottery). So unless your buddy is very lucky, he’s definitely paying for it.
That said, I think Cosmo does a decent job on spend. 5% rebate on all Cosmo spend through points. If you spend $4k in a year without gambling you’re gold tier which comes with 2 nights + 2 companion nights. If I’m going with friends, I’ll get them casino rates on rooms (steep discount), but get the points from the room spend. You can convert the points to Marriott points too.
I haven’t really compared to other programs. They are not table game player friendly with comps, but I mostly stick to video poker. They beat other upper end casinos there.