How to make module not importing packages imported in shell

I’m programming pure AS 3 in flex SDK using FlashDevelop.

There is a Shell and a Module. The Shell loads the Module. Module is never run without the Shell. Because there will be more modules, I decided to put common classes to Shell.

1. Compiled Shell with
-link-report obj\Shell_Extern.xml

2. Compiled Module with
-load-externs obj<ShellProject>_Extern.xml

Module size shrank from 90 KB to 2,05 KB.

3. Added 5 filters to Module:
import flash.filters.*;
tf.filters = [new GlowFilter(), new GradientGlowFilter(), new DropShadowFilter(), new BevelFilter(), new BlurFilter() ];

Module size grew to 2,15 KB.

4. Added 5 filters to Shell (same code as above), recompiled it, then recompiled Module.
Module size still at 2,15 KB.

5. Tried getDefinitionByName
//import flash.filters.*; commented out
var GlowFilter:Class = Class(getDefinitionByName(“GlowFilter”));
var GradientGlowFilter:Class = Class(getDefinitionByName(“GradientGlowFilter”));
var DropShadowFilter:Class = Class(getDefinitionByName(“DropShadowFilter”));
var BevelFilter:Class = Class(getDefinitionByName(“BevelFilter”));
var BlurFilter:Class = Class(getDefinitionByName(“BlurFilter”));

Error #1065 GlowFilter not initialized, Module size grew to 2,19 KB. Deleting some, but not all filters is decreasing size, so it’s not the getDefinitonByName that takes 0,14 KB (2,19 - 2,05 without filters).

My questions:

  1. Do I understand the idea of load externs, or does it work only with specific classes? Why it doesn’t work with filters?
  2. What did I screw up with getDefinitionByName and is it a new feature because of it’s use like in link below?
    http://www.ultrashock.com/forum/viewthread/104606/