Because some applet loaders throw exceptions when loading non-public applets... just try to load a non-public applet in appletviewer... it will complain.
If you are asking why the applet loaders do this... I don't know. But what's so important about non-public applets? I don't think they would be any different from public applets... ( In fact, in the implementations that allow you to run non-public applets, there is no difference. )
Write once, run anywhere, because there's nowhere to hide! - /. A.C.