On the first one, Google seems at least a little less blatant about it; there are tech companies that offer free dinner, but only starting at a relatively late hour, like 7pm, which is pretty clearly a perk for people who stay late. Although someone I know works at a place with a policy like that, and just works his 8-hour day 10am-7pm (with an hour break for lunch), stopping by for dinner on the way out, so it works for some sleep schedules without actually putting in overtime.
I worked at a place like this. They served dinner at 7-8pm, and you only got it if you worked at least 10 hours that day. I remember one day, one of the managers suggested that we up it to 12. "We're spending $30,000 a year on food; it's ridiculous." Yeah, but considering all of the extra hours you're getting out of people, paying an extra portion of a salary per year doesn't seem like a bad deal.