MSDN describes HttpContext.Items as being used to:
organize and share data between an IHttpModule interface and an IHttpHandler interface during an HTTP request.
MSDN doesn't make any recommendations about storing references to Page Controls in this collection. I know the Items collection outlives the Page lifecycle because it is associated with the request.
The reason I'm asking about the potential to store Control references in the Items collection is because we're considering making some page controls that sport a certain (known) interface to register themselves with the page upon Load. This is because the position of the controls in the page may change as they are configured by the end user through a Content Management System - this is how the page is assembled. We want to stay away from recursing the page control hierarchy and instead make the Controls offer themselves up directly through registration.
The best case is that somebody shoots down this idea for a good reason because they've thought of an issue that we haven't or have a better idea to achieve the same thing.