I Might be wrong here, but if I would guess, I would say that the email itself is not flagged with a campaign ID. The "send email" has an ID, because the email is sent by the campaign, but the "email opened" and "clicked email" do not because the link to the campaign is lost.
Probably worth an idea, though, as any how, the open email tracking pixel and the link redirect to the branding server could be associated to the "sent" event and therefore to the campaign ID.
I have confirmed via support that there is no explicit way to tie email events to specific emails via the API. This means that you have to do a best guess attribution off of the email address, the datetime, and campaign. This is a limitation for campaigns that allow leads to run through multiple times.