David,
Believe it or not this is actually by design. Eventhandlers are, themselves, containers and thus produce events. The difference is that the events that they throw up are not caught by eventhandlers in the same package.
That isn't to say there isn't still a problem. Eventhandler containers do not possess the DisableEventhandlers property and that isa bug in my opinion. The way I get around this is to prefix all tasks in my eventhandlers with some sort of code (I use two underscores) and then in the parent package only log events where @[System::SourceName] does not have that prefix. its a bit cludgy but it works.
-Jamie