Yes and no. You *technically* can store the newline character in hash tables, but you don't want to.
The reason being: storing multiple "lines" in one variable would not be advantageous in most situations because you'd have to prefix a /command to each line anyway, eg:
var %hypothetical_var = LINE1 $+ $crlf $+ LINE2
//msg # %hypothetical_var would msg the channel LINE1 only, and then you would get a message from the server saying "unknown command LINE2"
This is because the IRC server itself doesn't handle multiple lines either. Each line is one command- so every line needs a command prefixing the data.
This is the same for /echo-- it can only echo one line at a time. In this case you would just see LINE1 <weird block character> LINE2 on one line, because it ignores newline characters. There is no way to echo multiple lines with one /echo command, so storing it that way is not helpful.
Instead, just store the lines in multiple variables:
hadd -m table line.1 = line1
hadd -m table line.2 = line2
and loop over $hget(table,line. $+ %i)