No sabía que a implode se le puede dar ese uso, pero, analizando un poco el código, creo que implode une el string establecido como primer valor a cada línea del otro string, que en este caso es un archivo..
Cada línea ya tiene PHP_EOL en el txt, si no saldrían todas las palabras sin salto de línea, entonces como también se le indica a implode() que le agregue otro PHP_EOL, se agrega un salto de línea extra..
Para resolverlo, simplemente se le manda un valor vacío:
Código PHP:
echo implode('', $file);
Cada día se aprende algo nuevo.
Espero haber dado en el clavo