Multiple Classes in one AS file - The Right way?

So, what exactly are the rules on several classes inside of one AS file?

So far, the only way I have been able to do this is by putting the class outside of the package brackets with no namespace selected (which I believe means ‘internal’ by default, right?)

package aRenberg
{
   public class ExampleClass
   {
      public function ExampleClass() {}
   }
}

class secretClass
{ }

So, using this notation, I’m wondering if a few things are possible:
1. Putting several ‘secret’ classes in the same AS file?
2. Making these classes public via the “Main” class, the one that the AS file is actually made for?

Both examples applied here. Are these the right ways to do this?:

package aRenberg
{
   public class MyClasses
   {
      public function MyClasses() {}

      public static const Class1:Class = secretClass1;
      public static const Class2:Class = secretClass2;
      public static const Class3:Class = secretClass3;
   }
}

class secretClass1 {}
class secretClass2 {}
class secretClass3 {}

3. Since these classes are marked as internal, they should be available to classes which extend the Main class AND classes in the same package without any import statements, correct?

**4. Does embedding classes like this affect performance in any way?

  1. Will these embedded classes always be compiled even if they are never accessed or referenced, similar to Library items or other classes?**

Also, is this the only way to do it, or are there more options?