If the autoDestroy flag is set, the Container.remove function causes the NullPointerException in the Component.fireEvent code. Basically, the Container.remove destroys the component first, and after that fires the Events.Orphan on the already destroyed component.
The destroy code has been removed in SVN as it was determined unneeded with GWT. Destroy is used in Ext JS as there is no attach / detach concept and listeners must be manually removed.