Потому что echo печатает перевод строки после вывода
$ echo 1f4d3f81-544c-ffc2-a798-074b23fb42db147| hexdump -c
0000000 1 f 4 d 3 f 8 1 - 5 4 4 c - f f
0000010 c 2 - a 7 9 8 - 0 7 4 b 2 3 f b
0000020 4 2 d b 1 4 7 \n
0000028
В стандарте POSIX ничего про -n, насколько я понимаю, нет.
Вообще-то есть. Но размытое определение, я так понял, что на -n POSIX-допустимо подвесить функционал
A string to be written to standard output. If the first operand is -n, or if any of the operands contain a backslash character, the results are implementation-defined.