What is the point of having the clone function in custom events? I do this but never understood why lol
The EventDispatcher calls it to clone the event when you redispatch an event with dispatchEvent(event). That's also why you should implement it correctly (copy all the properties), otherwise the listeners which handle the redispatched event will receive an event with incorrect values.
Why do you need to clone it?
See this blog entry which explains why you need to create one: http://life.neophi.com/danielr/2006/06/events_in_flex_2.html
Blog post is about flex 2, but the reason is still valid.