Yes, but -- we're actually rewriting all of this. Lint has for a long time relied on the "builder-model" API to communicate with Gradle to find out project information like dependencies, library prefixes, and various other pieces of information (whether a given file is in a debug specific source set, whether shrinking is turned on, etc etc).
This was problematic for a number of reasons, and one very big one is build performance.
So in 4.1 we've already removed builder-model from lint's dependencies, and in place there's a "lint-model", which initially looks very very similar to the old builder-model API, but somewhat simplified, and omitting many of the things in builder-model that lint doesn't care about (builder-model was primarily intended to communicate the project layout to the IDE, for "Gradle Sync"). In 4.2, we've continued this work, and soon (as always, no promises!) we'll switch over to AGP generating builder model via separate tasks, which should help build performance.
This feature (private resources) was initially designed to help users of libraries (especially the support library) not accidentally use resources we considered private; it wasn't really built to be used for local project filtering. And it's not a super solid foundation since there isn't actually a real notion of private resources; if two modules declare the same "private" resource of the same type and name, they will clash. A much better, real implementation of private resources is possible with our resource namespace work, but that's not ready yet.