There are two aspects. One is the purpose of offering benefits, the other is fairness and inclusivity.
Companies offer benefits because they want to make employees happy enough to stick around. It thus makes sense that all employees can take advantage and feel good about it.
For the same reason, benefits should be designed so that no employee feels excluded or that they fell they are told how they should live their lives.
At then end of the day, for the company it's only a matter of budget. So, to me, it makes sense to let each employee decide. This is the best way to address the two points above. That's exactly how it works at some companies (as hinted in my previous comment): The company tells you that you have a budget of x per year that you can allocate to a range of benefits with any cash left added to your cash pay. It's flexible, empowering, and employees tend to be quite happy about the system.
Or, as I mentioned, decide to pay well enough that you can tell employees that you don't offer additional benefits but compensate through the pay cheque, which they can obviously spend however they please.
Regarding your example, I would think that a good company would provide a range of free drinks, not just coffee or even one type of coffee (again the point it to make employees feel valued).