I don't know the Ethernet shield and library well enough to say. In general, repeating an initialisation on every loop iteration which is intended to be done once at program setup is not a good idea.
Can you find a library method which can be used to test if the connection is still there ?