This is sort of a tricky question for a number of reasons.
Several people have brought up preferences that aren't restrictions. (Say, someone who will eat red meat but who prefers poultry.) I think the onus is on a person who has a preference to let the host know, just like it's on someone who has a restriction to let the host know. I think that most hosts will try to plan their shopping and food prep based on what their guests want.
This is self-policing, of course.
But if what you have is a preference, I think the polite thing for a guest to do is to shut up and eat whatever is put in front of you by your gracious host, who has opened their home to you, purchased food, and prepared it.
The host is not a restaurant, where you place your order. The hospitality and the food are a *gift*, and you should treat it as such. It would be the height or rudeness for a guest to say, "Thanks for inviting me to your BBQ, Toots--I like chicken better than beef, just so you know."
Someone with a health-related restriction or a philosophically/morally/religiously held restriction is OK to share that. Partly because of the severity of the issue, and partly because saying "I'm a vegetarian" is *broader* than "I prefer chicken to beef." I can make portobellos, or buy veggie hot dogs, or make lots of lentil salad or something.
If a guest said, "I'm really looking forward to some grilled chicken," I'd take that as enthusiasm and perhaps a hint. Hints are OK. And I'd perhaps factor that hint in when planning the menu.
And if a guest said, "Oh, I'm hoping you'll make your ham, it's so yummy," I count that as a compliment and a veiled requests. Veiled requests are OK. I'll decide, when it gets down to the nitty gritty, whether I want to grant it, but I won't feel bad if I don't.
But preferences? Don't treat me like a restaurant--don't place your "order."
(Note that this does not apply to a work meal--a work meal is not "hosted" in quite the same way, even if your boss is paying.)