The description of the function FcStrSetAddFilename states: "Adds a copy s to set, The copy is created with FcStrCopyFilename so that leading '~' values are replaced with the value of the HOME environment variable". But if the name of the input file is not a full path and its first character is not '~', the function FcStrCopyFilename returns concatenation of the current working directory with the file name. So the function FcStrSetAddFilename adds to the set the string, which should not be added according to the documentation.
The detailed bug description can be found at:
*** This bug has been marked as a duplicate of bug 12964 ***