This is nothing to do with the
echo command. You'd see this same behaviour if you wrote the output using
printf, or some other program. This is an aspect of your terminal.
And terminals can differ amongst themselves in this regard. The terminfo database will or won't have, for your terminal, an
auto_left_margin capability, known as
bw in termcap. That tells programs whether backspace can be used to wrap around the left margin, as it can on some terminals. If you'd used a terminal with automatic left margins, the
c would have appeared on the previous line.
And if you'd reprogrammed your tabstops, you'd have seen yet further different behaviour.
Interesting things can happen when one combines
BS, by the way. The 25-year-old warning in the termcap manual about backspacing over the margin when there's no automatic left margin capability reported or when the cursor is on the first row, reprinted everywhere from the System V Interface Definition to the FreeBSD manual, may seem quaint and overcautious at first blush; but the world has known terminal control code processing that did not get this quite right.