The ebuild for sys-libs/libcap depends on ">=virtual/linux-sources-2.2", but that's not the right characterization of the dependency. libcap needs to be built against a glibc that has a useful linux/capabilities.h in /usr/include, and presumably needs to run on a kernel that understands them. With a typical glibc-2.3.x built on a typical 2.4 or 2.[56] kernel, there's no need to drag down a kernel source tree, as the libcap makefiles don't pull this particular header file from the kernel, but from glibc.
On my system (linux-headers 2.4.19-r1 and vanilla-sources 2.4.21), the linux/capabilities. h you speak of is actually linux/capability.h.
Yes, you're absolutely right. Same in the glibc package.
Fixed in CVS.