If you don't like to read lot of text the gist is to use weak references where ever possible.
1. addEventListener is being called with the default value of false for its useWeakReference flag.
2. bindProperty and bindSetter methods of BindingUtils are called with default value of false for its useWeakReference flag.
Please note: I don't know what is the equivalent thing in Flex 3.
3. ChangeWatcher.watch method is being called with default value of false for its useWeakReference flag.
Please note: I don't know what is the equivalent thing in Flex 3.
4. Dictionaries are being used with weakKeys flag in the constructor set to false.
Items 3 and 4 can cause some hidden links to be formed and memory to leak. More on that soon.