ln -s ../src include/bb
cria um link chamado include/bb referente a ../src (relativo a sua localização) ou cria um arquivo include/bb/src referente a ../src (relativo a sua localização). O último é o caso se include/bb existir e for um diretório (na verdade ou como um link para um diretório).
Assim, quando você tiver feito o comando uma vez, agora há um link include/bb que aponta o diretório src , irmão para include . Ou seja, include/bb agora é um diretório. Portanto, quando você faz o comando na hora subseqüente, um novo link chamado src é adicionado a esse diretório.
Não tem nada a ver com ; .
Você pode ter pretendido usar
ln -sTf ../src include/bb
em vez disso, para (por -T ) informar ln para tratar qualquer include/bb existente como um arquivo simples (mesmo que seja um link que faça referência a um diretório) e (por -f ) forçar esse arquivo a ser substituído.