The greensock documentation says:
suppressInitReparentEvents: Boolean
- If true, the SWFLoader will suppress the REMOVED_FROM_STAGE and ADDED_TO_STAGE events that are normally dispatched when the subloaded swf is reparented into the ContentDisplay (this always happens in Flash when any DisplayObject that's in the display list gets reparented - SWFLoader just circumvents it by default initially to avoid common problems that could arise if the child swf is coded a certain way).
So you can change your code in Preloader.as to:
var loader:SWFLoader = new SWFLoader("Prototype1.swf", {suppressInitReparentEvents: true});
And you'll only get one call to onAdded
.