Hi Litan,
we need to distinguish between different issues here. There is no problem using different sockets in different tasks, ie if one task serves socket a and another one serves b, they will never interfere with each other.
You can also serve multiple sockets in the same thread but you may have convoy problems then.
The one interesting scenario is trying to serve the same socket from multiple tasks. That is rarely done, mostly because most protocols are inherently half duplex, meaning you do not gain a whole lot from multiple tasks because they would need to get fully serialized anyways.
If your protocol allows for concurrent access (ie reading and writing from different tasks - it is easy to see that reading from multiple tasks to the same socket must lead to chaos), I believe you are fine with FreeRTOS+TCP - unlike, eg, Lwip which does not support that. But normally it is hard to find a scenario where 1:many works satisfactorily (that exists, but is out of place here).