It makes an already complex implementation even more complex. And in general callbacks are hard to comprehend and debug.
Also you can pass whatever callback you want (literally anything), and the interface is limited to one argument. How reliable is this? How would you document this? Kind of hard to test, too.