Actually socket commands should be a higher abstraction than the Multilayer commands
Quote: "Whereas, as far as I can tell, the other commands send data as you write it rather than building up a buffer and flushing it out to the client"
YOU ARE building a packet and flushing it out like:
MessageID=CreateNetworkMessage()
AddNetworkMessageInteger(MessageID,NET_SPAWN)
AddNetworkMessageInteger(MessageID,ClientID)
AddNetworkMessageFloat(MessageID,SpawnX)
AddNetworkMessageFloat(MessageID,SpawnY)
AddNetworkMessageFloat(MessageID,SpawnZ)
SendNetworkMessage(Net_NetworkID,0,MessageID)
For the Multilayer commands you should manage the packet size by yourself but they can also differ from 1400 (max socket packet size)
The biggest difference for us is indeed sockets are working in HTML5 ^^