Earlier quoted context omitted.
An HTTP level load balancer like nginx can do session affinity, which is helpful when your application server isn't stateless. I guess a TCP load balancer could do them based on IP as well, but IPs don't identify sessions as well as cookies can.
As can haproxy or any other L7 load balancer.
Sure, but those aren't TCP load balancers (at least, not if you enabled that functionality), since they work at the HTTP level. I wasn't claiming nginx was the only way to do session affinity, just that it's a reason to use it over a TCP load balancer.