If you look at it in this way, it is indeed confusing.
These differences are more from your application point of view. In your application, the flow is disrupted when a special 'event' takes place and for that, if there is a callback function then that is executed.
While in request mode, your application keeps on waiting for something to happen, other activities in that thread of execution are held.
The way event handling is done is an independent discussion.
P.S: For the sake of analogy, this is similar to polling vs interrupts in microcontrollers. The are special routines/functions that are executed if there is a change in signal over any pin. Special hardware circuitary is required to support it (similarly seperate software is required to support event handling).