1) Well yes :]  I had seen this: 
http://w3.impa.br/~diego/software/luasocket/tcp.html#receive
I was trying to find a list of errors that it might throw back at me?  I swear I must be missing it somewhere... halp?
2) Well that was my justification for wanting to make it little guess-work to understand a C tutorial in Lua...  Gotta start somewhere :]
3) Linux has a lovely getaddrinfo_a() that does lookups in parallel... you could start multiple worker threads with something like lua-lanes to do individual getaddrinfo()'s but that's a lot of responsibility/liability on you... I wish getaddrinfo_a() were portable XD
4) Okay, maybe I only wanted to break abstractions for using different polling interfaces/APIs.  :getfd() was hard, lol.  (j/k)  The more I dug into the source for luasocket the more I wanted to create my own binding.  I think what Diego did is great, but there's a lot of code in there done for efficiency (he has his own buffer object).  I try tried to write as little as possible so as to avoid introducing my own unexpected behavior -- but I'm not implying luasocket isn't well-written.  I just wanted to use what was already there like luaL_Buffer to copy out from recv() and such.