The goal of the CVS component is to provide the best CVS integration in the best IDE. Because the CVS plug-in includes a pure java client, the support works without requiring a command line client install on the users machine. The advantages of writing a custom java client is that we can implement features that wouldn't be possible using the command line client (e.g. browsing a remote repository, connection re-use). However, this comes with a disadvantage; we must keep up with CVS server revisions and ports, plus keep up with new features.
The CVS support is not packaged for use outside of an Eclipse workspace. It's really an Eclipse CVS client and not a generic java CVS client. It would be nice to have, but initially we were focused on rich integration in Eclipse. Another minor point; the CVS plug-in doesn't expose an API. That means that accessing the internal classes is technically possible (e.g. we don't restrict run-time access to the classes) but we don't guarantee binary compatibility between releases.
If you are already a CVS developer, check out the Development Resources.
If you are interested in participating in the development of the CVS component, there are several ways of contributing: