There are many answers to the question "how do I store and print newlines in a bash variable". Briefly, the answer is usually that a variable containing newlines needs to be quoted when it is evaluated.
e.g.
foo="1
2"
echo "$foo"
outputs
1
2
and
echo $foo
outputs
1 2
At this point, one might think that the lines of the variable could be joined into a single line by assigning them to another variable without quotes.
e.g.
bar=$foo
However
echo "$bar"
outputs
1
2
The answer to this question may already have been asked. But, the abundance of answers to similar questions may be crowding-out existing answers to the question I'm interested in. So, it needs to be asked: why does unquoted variable evaluation discard newlines while unquoted variable evaluation in an assignment preserve newlines?
Answers without reference to documentation won't really be useful since the behavior is already clear. Language-lawyers would likely provide the best answers.