Why does SDL_ControllerButtonEvent::state exist?

I’m having a hard time understanding why there exists a separate state variable that contains either SDL_PRESSED or SDL_RELEASED, as shouldn’t that information be already contained in the type of the event (SDL_CONTROLLERBUTTONDOWN / SDL_CONTROLLERBUTTONUP)? The documentation does not describe what’s going on here.

Is it possible to get a SDL_CONTROLLERBUTTONDOWN event with state set to SDL_RELEASED? Do I need to be prepared to handle that event?