The different forms:
Gdddd - This is the root form. It can begin with a G, g, H or h and be followed by up to 5 digits. It may have leading 0's to pad it to the same width.
Gdddd|Gdddd - This indicates that multiple Greek (or Hebrew) are translated into one word. Typically, the first is G3588, the indefinite article.
Gdddd!a - This is used by the NASB to indicate that Gdddd is split into multiple definitions. In these cases, a search that does not find the entry with !a is to look for it without and return that. Note: in the case of a !a there is a !b and may be more. Each of these words are related but represent a disagreement with (or enhancement to) the Strong's original work.
The SWORD (or JSword) engine has the responsibility to normalize these upon a module lookup to a leading letter, a 5 digit padded number and if !a is present, then the 'a' appended to the number.
The front-ends have the responsibility to split the Gdddd|Gdddd form and give each to the SWORD (JSword) engine for processing. Very few front-ends do this well. I'm not at all sure what SwordWEB should do with its multiple highlighting.
I concur with Chris that this is not a module problem. At best it is a front-end problem. Perhaps you should move this to SwordWEB as a bug?
Report basically pertains to Strong's numbers (not indexes) not being correctly normalized in software. We could do some limited normalization within the texts, but it's not a priority, and given that other normalization must be performed in software, it might as well all be performed in software for the time being. I'm fairly sure the normalization functions are already in Sword, so it's possible swordweb is simply not using them.