Map IDs are unique; you can't assign the same number to
multiple topics. The programming application used at my company
allows only a single map ID call for each control in the software,
so I generally apply the tags at the text level.
Your programmers are likely using the same controls for each
version of your company's product. In this sense, they're like
you--they tag pieces of their work and produce different outputs.
So they probably can't use different map IDs. because they always
call the context-sensitive help from the same control, even if it
looks different from one version to another.
For example, suppose that your programmers code a module that
is available to some users but not others; furthermore, suppose
that the module differs slightly from one version of the product to
the next. At its core, however, it's the same module, so it will be
allowed to call a single map ID. This is analogous to your Help
approach: you use conditional tags to produce multiple versions of
the same topic. So it's hard to imagine that the programmers can
find much use for multiple calls to the same topic. Instead, the
more efficient approach is probably to work with text-level tags on
your end. (I understand that this might not be more efficient for
you if the information in the topic changes drastically based on
the version, but I don't think it will work otherwise. Perhaps
someone else with more experience in this area can chime
in.)