David Goulet:
It's a bit weird to have to enable two options for one feature (single onion) BUT I like the double torrc option forcing the users to understand what's going on (also adding semantic to the config file).
Bikesheding: the name though could be a bit misleading. What if that tor process is also used as a client to "wget" stuff on the server for instance. Won't I be confused if NonAnonymousMode is _set_ not knowing it applies to what? Idea: "HiddenServiceNonAnonymousMode 1". Pretty explicit that it's for the service.
I don't think using doubled option will force people to understand what's happening. Most probable outcome is that two-option requirement will look just "strange". It's strange because it's vague. I agree with David, something like "NonAnonymousOnionServiceMode 1" should be enough. It looks pretty clear and simple. [NB: a service cannot be Hidden and NonAnonymous at the same time :) ]