Following on from the reports at bug 51142 comments 5-9
In every case where the last character of a link is non-alphanumeric and any text is inserted before that character. It seems that the underscore behaves as an alphanumeric character, and that script is irrelevant. It doesn't matter if the link was added in the current editing session or not.
e.g. [[Link|Link.]] → [[Link]]<nowiki />s[[Link|.]]
but [[Links]] → [[Linkers]] (this is the expected behaviour for all situations)
If due to this a non-alphanumeric character that was previously mid-link but now becomes the last character of the link, adding any character before it triggers the bug again.
In VE it is easy to include trailing punctuation (particularly commas and full stops) in a link without realising it (this is a side-effect of the WYSIWYG), meaning this occurs more often than might be expected (see comments at bug 51142).