super(productName + " " + instanceName);
I don't think this is DInputs fault this small fragment resides in DirectInputDevice.java and it obviously connects product and instance name. Maybe someone thought instanceName would be something meaningful on Win32 when more than one controller of the same kind is installed. Well, this is really the problem. DInput doesn't do this.
More interesting in DirectInputKeyboard the super-Constructor is called this way:
super(productName + " (" + instanceName + ")");
These brackets would be nice to have it for the mouse, too.
Can someone with commit access do these cosmetic changes?