My company does Christmas lunches and other celebrations for its employees. We have contract employees who also sit on-site with us. However, they are not included in our lunches, etc as they are technically not our employees. It really does come down to legal and cost issues. It is up to their individual companies to provide that type of celebration, not us.
I don't think I'd be upset at all if I was not included in a celebration since I would understand I don't technically work for the company. Yeah, it is sad that it has to be that way, but there really is a reason. I know when I expense things it asks if the people attending were employees. If they weren't, there are all kinds of other things you have to do in order to show you're not improperly using company funds on other than company people. So, in order to avoid the hint of impropriety, we're not allowed to pay for contractors.