The messages plugin is a low level plugin that handles error, warning, and informational messages that other plugins are generating.
A few really low level plugins cannot use the messages plugin (because the messages plugin depends on them.) Those plugins will only generate logs and throw when an unrecoverable error occurs.
The server_access plugin also makes sure that messages get sent to the client.
When the server is to redirect the user, the messages cannot be sent to the browser at that time. The server knows to save that information in the user session and re-read the messsages on the next access and send them to the user at that time.