L'errore 404 ti viene restituito non perchè la directory è esistente, ma perchè al suo interno non c'è un file index.

Le due condizioni !-d e !-f evitan già che il rewrite venga applicato nel caso in cui il file o la directory richiesti esistono.