I have problem related to this.
Why does the PluginDescription::matchesIdentifierString check only the end of the identifierString? I have two Waves plugins, they are in the same shell dll file and they have the same PluginDescription::uniqueId, only the PluginDescription::deprecatedUid is different. Therefore the matchesIdentifierString method says they are identical, and the wrong PluginDescription is returned when I call the KnownPluginList::getTypeForIdentifierString.
Sorry, it was my fault. My custom scanner used an old JUCE version, that caused the problem. I updated the JUCE version, the uniqueId is now really unique.