In a module kick messages have to be parsed to find the user and channel, with an event in the core it could pass the kick to the modules without having to hack down to find the user and channel.
I ran into this while coding channel limit module, cause if you kick a user there is no part sent so the module author has to hack down and find the user and channel.
Events system was added to make life easier on the coder