This is currently by design. The function events are based on triggers. You can have multiple triggers such as more than one "On start of layout" trigger, and so you can have multiple "On function" events, it's pretty much as simple as that. I agree it would be better to redesign functions to only allow one function event, but this would be a major change and would not happen for C2. At some point we'll redesign the way functions work in C3 and think about it then, along with other ideas like named & typed parameters.
Additionally it's very difficult to change anything like this so late on. Functions have been around for years, and there are likely many projects that depend on having multiple function events, tutorials that describe using them that way, etc. If we change it and break all these projects, the breakage is far worse than any improvement for fixing a quirk of functions, so it's not worth it. If we change it but allow existing projects to keep working the same, we've not really fixed anything, and it's an additional source of confusion ("why can't I make a new project the same as my old one" etc).
So closing as by design / won't fix.