1. $read does not strip the extra spaces, but whatever process displays them on your screen, does. try /set %test $read(file.txt,nl1) where line 1 has many spaces between words. Now look in your Variables list, or even echo $len(%test). The spaces are there, but most commands removes them. We just have to wait for a /echo to support &binvars.
2. You failed to explain how these multiple lines are suppose to all be processed at once. Put them all into a single variable? Load them into a hash table? One way or another, you ARE going to be looping each line of data.