Not sure if I've completely glossed over the need for the BaseManager as it just seems to interact with the collection anyways but why not make BaseManager extend Collection.
This means you get best of both worlds and a majority of code doesn't have to have .cache added to use any of the utilities.
It still seems like an unnecessary step but I guess I'll see what comes out of that
Actually reading the issue and understanding the underlying problem is important to see why its necessary.
I'm 99% sure I closed this issue, not 100% though, you're making me doubt myself crawl.