El guion Unicode (‐, U+2010) es lo que un tipógrafo entiende por «guion». Tu teclado no lo tiene. La tecla sobre el cero produce el guion-menos, U+002D — un carácter de compromiso heredado del ASCII, que necesitaba un glifo que sirviera a la vez de guion y de menos en la computación temprana. La U+2010 se añadió mucho después, cuando Unicode le dio al guion un punto de código propio, y el software de autoedición, los generadores de PDF y los sistemas profesionales de composición lo usan siempre que quieren ser precisos. Para un lector, los dos son indistinguibles. Para un analizador, son caracteres completamente diferentes.
Esa brecha es donde vive el problema. Un guion copiado de un PDF, de una exportación de InDesign o de una página web derivada de PDF suele ser una U+2010, y luego viaja a lugares que esperan ASCII: un campo de usuario que admite solo letras, dígitos y el guion sencillo; un import CSV que rechaza bytes no ASCII; un índice de búsqueda donde «palabra‐compuesta» y «palabra-compuesta» son cadenas distintas; un chequeo de duplicados que informa dos códigos de producto idénticos a la vista como únicos. El carácter es invisible para un buscar-y-reemplazar que busque el guion del teclado, porque no puedes teclear el carácter que estás buscando.
La solución es normalizar. O sustituyes cada U+2010 por un guion sencillo, que conserva el aspecto del texto y lo vuelve seguro en ASCII, o borras los guiones por completo cuando el texto va a un lugar que los trata como ruido. El eliminador de guiones de este sitio busca cada miembro de la familia del guion por punto de código —U+002D, U+2010, U+2011 y el guion blando invisible— y abre cada uno en un espacio; la herramienta de eliminar todos los guiones los borra, y la referencia de símbolos de guiones te dirá qué variante tenías en la mano.