O Windows usa o UTF-16. A maioria dos codepoints é codificada em dois bytes. Codepoints fora do BMP (Basic Multilingual Plane) são codificados em um "par substituto" que leva quatro bytes. O Windows não normaliza nomes de arquivos usando qualquer formulário de normalização Unicode.
Isso significa que você pode ter dois nomes de arquivos idênticos a um usando um "é" composto por um único ponto de código e o outro usando um ASCII regular "e" seguido de um acento agudo Unicode, portanto dois pontos de código.
O OS X usa o UTF-8. Codepoints são codificados usando entre um e cinco bytes. O OS X usa o NFD Unicode (Normalization Form Canonical Decomposition).
Isso significa que quando um caractere Unicode como "é" é usado em um nome de arquivo, ele sempre será normalizado pelo sistema em um ASCII regular "e" seguido por um acento agudo combinando Unicode e sempre levará dois pontos de código.
Na verdade, o OS X usa a especificação do Unicode NFD da versão 2.1 ou 3.2 do Unicode, dependendo da versão do OS X.
Aqui está uma bela página que aborda as sutilezas na codificação de nome de arquivo do OS X's / HFS + .