Collision Detection and SDL Events

Is collision detection really best left up to the application?
or would it be a sane move to add some kind of
Surface Collision SDL_Event or Surface Status Array (ala key state)?
(togglable per surface, of course)

Seeing as an Amiga port has just occured, that has HW capable of
performing such a test PDQ and accurate to a pixel,
the other platforms would be a little slower…is it worth it?

I intend to make pretty heavy use of the User SDL event structure,
would anybody recommend it, or would it be better to use a custom
Event pump? (buffered mouse & key movements might significantly
get in the way, I suppose?)

All the best