AngularJS & binding is also more powerful than simple events. Like you highlighted in your question, it's not a callback binding, but an expression binding, which means that you can do more than just invoking a given event. I'm not sure if this flexibility has some important benefits, of if it's just a nuisance which makes AngularJS & binding harder than it needs to be; nevertheless, you can use it with expressions—something you won't be able to do if AngularJS was using events.
[But why would you use & binding] in a case where your application already uses events for some things?
To know the exact reason, ask the persons who maintained the code where you've seen both events and & binding. There could be several possible reasons:
Why use events, when & binding works as well? It is as simple as that.
The code may have started with & binding. Events were added where one needed them. Nobody would migrate the whole code base to use events, because it represents a cost for the business, while having absolutely no business value.
Some developers on the team are familiar with events; others prefer sticking with & binding.
¹ And then the dream breaks as soon as one realizes that those are not really callbacks, but expressions, and that it has some important consequences on the way the binding is used, even for things as simple as the function arguments.