In retrospect I should not have been surprised - in either case.
Load an applet into Internet Explorer (version 7 in this case). Hit “refresh” on the page from which the applet was loaded. Some classes used by the applet have static initializers. Some of the static initializers start threads. The threads are part of a thread group associated with the first applet instance. On the first reload, all(?) the threads in the first applet’s group are terminated. Second instance of the applet does not start the background threads, since the classes (already) loaded think the background thread exists.
Right. Is this the right behavior? Sometimes. Maybe. My take? Not so much.
Should the state of a re-loaded web page (though applets) share state from the first load? Sometimes this is useful, but this always makes the programmer’s job more complicated. My preference - as with re-loaded server-side web application - would be to share nothing (by default).