The problem with saying that only a certain number of restaurants can remain non-smoke-free is that you have to decide which ones. The best way to do that, for the sake of argument, would probably be some kind of economic incentive to stay smoke-free, such as a tax if you aren't (or a tax break if you are, either way).
That's exactly how I'd do it.
In an environment where most restaurants are smoke free, smokers will flock to ones that aren't, and in an environment where restaurants are largely full of smoke, non-smokers will eat at the ones that are smoke-free. And then people who don't particularly mind either way will do as they please, and haven't any right to complain. I've never quite understood why there'd be any reason for laws, or tax incentives, to be necessary.
Well the problem with that is that we've already tried it with no laws or incentives, and the market failed so miserably in providing smoke-free establishments that majorities of voters demanded that it be fixed in the crudest, most direct way possible. A person can talk about what would be fair in ideal circumstances/libertopia but realistically there's a need to compromise with people who would be happy to abolish smoking entirely.
edit: Also, there's whole issue with people who work in these places. I scoff at any
customer who claims the occasional visit to a smoking establishment is going to measurably impact their health, but if someone spends a decade or two
working in a cloud of smoke it's entirely different situation.