An implementation of `delegate` for sure doesn't need the return value. But imagine a hypothetical plugin that needs to apply arbitrary bindings, for example, and needs to create an anonymous listener function capturing some of the arguments. It would call `delegate` with the anonymous function and need a reference to it to undelegate later.