A TCP socket that is connected should not be closed until the connection has been shut down. To gracefully shut down a socket first call FreeRTOS_shutdown(), then wait for read attempts on the socket to return FREERTOS_EINVAL, indicating that the socket is no longer connected.
The source code examples on both the Sending TCP Data and the Receiving TCP Data pages demonstrate a connected socket being shut down then closed.