As far as the hotdeploy related OutOfMemoryErrors are concerned, they affect most, if not all, applications, and not just Struts applications. It seems that the memory allocated to loaded classes are not released, and not the object instances. You can get the details from the following Wiki page.
Basically an effective solution would be to define a bigger MaxPermSize in your JVM settings.
I have also worked with WebLogic and it also has a similar problem. However, it seems to be far less severe on the Solaris JVM than on the Linux JVM. I cannot confirm this for sure but this seems to be my experience