Essa é uma otimização feita por screen .
Quando você digita echo<Cr> em screen . Devido ao eco local e às configurações icrnl e onlcr do dispositivo pseudo-terminal na janela screen , a sequência \r\n é enviada para o lado mestre (para a tela).
screen implementa um emulador de terminal no qual \r serve para colocar o cursor no início da linha e \n para mover o cursor para baixo. Para fazer isso, onde um emulador de terminal como o xterm faria chamadas de API X para mover o cursor para o início da linha, screen tem que enviar códigos de escape para os terminais de host aos quais ele está conectado para informar cursor para o lado esquerdo da janela da tela.
Caso você divida a janela verticalmente, isso significa enviar sequências de escape de posicionamento do cursor para onde quer que o lado esquerdo das janelas da tela esteja. Se não estiver ou no lado esquerdo do terminal do host, screen passaria esses caracteres \r e \n para que o cursor fosse movido para o início da linha e uma linha para baixo no terminal host também (já que todos os terminais tratam \r e \n o mesmo nessa instância).
Agora, echo é executado e gera um caractere \n . Por causa de onlcr novamente na janela screen tty, screen recebe \r\n novamente. \r diz para ir para o início da linha, mas o cursor já está no início da linha, portanto não é necessário fazer nada, e é por isso que o terminal do host não recebe um segundo caractere \r . Em seguida, para mover o cursor para baixo por causa do \n que ele recebe, screen envia \n para o terminal host.
Você pode verificar isso executando na tela:
printf '\r\r\r\r'
Você notará que screen envia apenas um % caractere\r para seu terminal host.