Porque el propio sistema operativo usa otro conjunto de caracteres (WE8MSIN1252 en este caso). Pero dado que NLS_LANG (en el cliente) está configurado en AL32UTF8, Oracle no sabe nada de esto. Oracle siempre usa el valor en NLS_LANG e ignora la configuración del sistema, mientras que (casi) el resto del software usa la configuración del sistema operativo.
Por lo tanto, para solucionar este problema, el NLS_LANG local (cliente) debe ser el mismo que el conjunto de caracteres del sistema operativo. O (otra opción) el software que se ejecuta en el cliente debe volver a codificar los caracteres por sí mismo.