I'm firmly in the "this is okay if this is how it has evolved in the family" camp.
Also, in my mind it's really not about "charging family members for a home cooked meal"; it's about a family sharing the cost of a holiday dinner. Particularly in a situation where only one person has a big enough house to host everyone, so the dinners always take place there, it doesn't seem fair for that person to have to shoulder the entire cost.
And while it is possible to spread that cost over a group by having the meal be potluck style, with everyone contributing a dish, it's not always practical. When counter, fridge, stove top and oven space are all at a premium, the hosts can juggle pot sizes and serving bowls as required; that is not so easy to do when the person bringing the potatoes shows up with a giant roaster that won't fit anywhere. Even if it's emptied into smaller dishes, the empty pan still has to go somewhere.
To be honest, I think my family does do something to spread out the cost of the big Christmas meal. My siblings rotate hosting for Christmas, and my parents (who live out of town) always insist on buying the turkey(s), but I think there is a quiet exchange of $$ to cover at least some of the other costs. Since DH and I live several thousand miles away, and are only there every other Christmas, any time we try to contribute we are told that it cost us enough just to be there, and not to worry about it.
Also, I think we are very fortunate, in that while none of us are "rich", none of us are "poor", either, and we all get along. No big simmering family drama, thank heavens. My siblings have families of various sizes, but I don't think anyone counts family members and calculates a per person charge. It's more a matter of "the whole thing cost $x, so let's all put in $y each". And of course there would never - ever - be any mention of charging actual non-family guests! As I say, it's just a quiet thing that I'm pretty sure takes place and that works for my family.