The map wont change, unless you do some screwing around with the contents of the map (which is HIGHLY unrecommended :p). The map will be generated once for every enum in a file you pass to ConvertEnumToStrings. A separate class with functions for the whole works will be created for each enum in a single file, so there's no problem there.
However, that's not possible if the first map is bound to change (I don't think it is in your case tho) -- you would have to keep regenerating the second map, again a big waste of time.
One line of code versus several lines of code is definitely the way to go, IMO... ;)
In that case, considering again that these maps are quite small (a few hundred or a thousand items), you might as well just do the iteration. IMO, since they are small, that's what you might as well do anyway, there really is not much need for a second map here.