So one of the main limitations of using functions for this is that the handler logic is only defined in one place and is defined explicitly so everytime you call a function your get the exact same behavior.
I think the actual ask is to have a similar mechanism to trigger and some event. But then have the ability to define different logic for handling that trigger probably based on context.
This adds an extra layer of flexibility, and also gives the user the tools to keep the event sheet better organized and grouped together.
A simple example let's say we have a player health bar on one event sheet and the in a different layout we need same infor for different display but still relies on the same info.
Without having to duplicate a bunch of event in layouts. You can have your player object emit signal player.health.changed and pass a value for player health
In each layout you can have a trigger for player.health.changed and then each layout event sheet can handle this logic differently.
It provides another tool to help the user decouple some of there systems. And this is very simple example but I think illustrates the point a bit better.
This condition does not rely on every frame check, and has the same flexibility as custom object when picking. The signal should be able to traverse different object types. But also be handled on a per instance basis so only the picked instances execute the logic.
And it should hopefully be in the JS api as well.