Often packages depending on X11 libraries will also have to specify the X11 libraries' proto packages in DEPEND. This is because the X11 library itself #includes files provided by the proto package. It's not really that the X11 library depends on this at run-time, so the protocol packages aren't specified in the RDEPEND of the libraries.
This is documented in a number of bug reports (see 379545), and it seems that the decision is between - add proto package to dependency list of packages using X11 libs - add proto package to rdepend list of the relevant library itself The first is more correct, I think, but it's also much more annoying. Mesa winds up having x11-proto/inputproto in DEPEND for some long forgotten reason, for instance. The second option is much simpler and less error prone, but removes the ability to depclean the proto packages. It seems that some sort of DEPEND variable that means "I only need this when other packages are building against me" would be useful. Thoughts? Matt