And it's interesting that you bring up Sisko's restaurant. Not only do I think that it also makes some money from serving customers, but logically speaking, if eating there was free all the time, the lines would be uncontrollable - there'd be thousands of people waiting outside at all hours.
The lines would not be uncrontrollable because there would be thousands of people who also loved cooking who would own similar resturaunts.
Similar, maybe, but as far as we know, there's only one actual Sisko's Creole Kitchen. If you want Sisko's food, you eat at Sisko's place. Unless you're suggesting it's a chain...