The request state is automatically cleared when it is no longer in use. You could check if you’re associating these objects to a persistent object which is still being referred, displayed on a page or used in a widget.
Also check if you’ve associated them with current user or current session as I think without logging out of the session these objects will not be collected by GC. Something interesting to note is that even though you close the page and assume the GC will run and clear the state it only does so after certain number of pages are opened.
For detailed information on garbage collection take a look at this documentation: