The vim.eclass sets one combined value for the IUSE variable that encompasses all the values used in the file, thus making the list of USE values inaccurate for each individual ebuild that use the eclass. I'll attach a patch that fixes this.
Created attachment 15194 [details, diff] Set IUSE and newdepend based on ebuild name. This patch attempts to remove all the IUSE flags and newdepend values that aren't needed for an individual ebuild. For instance, vim-with-x is only used by "vim" (not vim-core or gvim); gnome, gtk, gtk2 and (formerly missing) motif are only used by gvim, and vim-core omits gpm, perl, python, and ruby.
Thanks! I applied this patch, and also added conditional dependency on cscope via USE flag.
Aron: Thanks for the quick fix. A couple more comments I thought I'd just toss onto this bug (since they're related): Notice that I eliminated the "X" flag because it wasn't checked anywhere in the file, but I was wondering if the vim-with-x check should really be "if X && vim-with-x"? My immediate reaction is that it's fine the way it is, but I thought I'd raise the question. Also, I didn't add any new "newdepend" values for the settings that didn't have them already: gnome, gtk, gtk2, and motif. It seems to me that they should be added (in the last "if" section that sets the IUSE var to include these USE values) in order to make the dependencies complete.