No the code doesn't freeze. What happens is the GET which arrives while another GET is being processed is just not handled and there is no response.
Until the w5100 finishes the previous socket connection, there will be no response. If you are connected to a socket that is not the active socket, you will get the "connected" message on your browser, and the little "whirly wheel" or "blinky line" while it waits for a response. If all the sockets are currently connected to clients, you will get a "server not responding" message.
Which are you getting?