1. smoke grenades, which have smoke production defined in either iuse.cpp or iuse_actor.cpp, look for manipulations of the field type.
Ah, I knew I forgot something obvious.
3. I don't think so, but what smoke in reality is harmless? if it's thick enough to completely obscure vision, it seems like it'd be thick enough to be hazardous.
Perhaps smoke is a really inappropriate word for what I am looking here. I am not a native english speaker, maybe “fog” describes what I have in mind.
In reality there can be “steam” that’s not really dangerous, I suppose. Usually it appears in very small quantities though, so it’s not really worth adding some “steam” when crafting tea or something.
Another possible place for “fog” could be swamps, just to obscure vision and make it more difficult to see distant objects.
Also, forget the beekeeping idea, I realized, a bee smoker could never produce enough smoke to feasibly hide a character in it.