I have a case where a class method is the recipient of some data, parses it, and returns a particular data type containing a subset of that data. A second method, several steps removed from the original, needs to obtain a bit of data that would normally be disposed of in that first method. Several other parts of the site rely on that first method so because of that, and because of how far removed they are, I am loathe to refactor the api and/or data types in several locations to get this to work. It also shouldn't live beyond this request so setting it in the db is not a good idea.
It makes sense to me to just update the request object. The first method would be modified to get this special data and assign it to the request object, the second method could extract it, and everything in between can just ignore it. This appears to work in simple tests. My concern is that doing this seems incredibly rare. I don't see this behavior anywhere else in Plone aside from low level Zope (building the actual, original request) and test cases. Are there any caveats I'm missing?