When I do a cvs status of my project I get different revision numbers for different files. What is happening here? Should not all the files have the same revision number?
CVS was originally a set of scripts over the file-oriented RCS, and it never escaped its history. A CVS repository is a collection of RCS files arranged in the directory structure you want when it's checked out, plus some lock directories. Remember that and you'll understand (and maybe be able to anticipate) a lot of CVS idiosyncracies. (Later VCS have had the idea of directories built in, as well as things like file continuity across renames.)
The CVS idea of a global state is a tag, which has to be applied manually. This is done by tagging each and every RCS file. It's also possible to get a copy of the repository at a given time, but this is not necessarily consistent, as large commits are not necessarily atomic.
So, no, the CVS revision of a file is the RCS revision in the repository, and has nothing to do with any other revision number. Don't sweat the revision numbers.