O motivo é porque você está fazendo errado.
Você disse que tem uma seqüência de cores "aberta" no final do seu prompt. Isto está errado. As cores não aninham . Não há "abrir" e "fechar". É "mudar para ..." ou "redefinir para padrão" (que é na verdade "mudar para 0"). Então, quando ls --color=auto
muda de cor para algo quando é feito, ele emitirá a sequência para redefinir para o padrão. Não é "voltar ao que era antes".
Defina o terminal para usar a cor do texto que você deseja que seja "padrão" (ou seja, o número da paleta 0). Então, se você deseja que seu prompt tenha uma cor diferente, defina-a no início e redefina no final.
Para mais informações, leia o Bash Prompt HOWTO Capítulo 6. ANSI Escape Sequences: Cores e Movimento do Cursor