evince runs fine without gvfs, did so for years and never complained. Forcing it to emerge gvfs (which I don't have nor need) leads to numerous packets being installed that are not needed elsewhere, including replacing eudev with udev.
As explained in bug 541318 it's used at runtime Regarding eudev vs. udev I don't see any hard requirement on udev in gvfs ebuild: udev? ( cdda? ( || ( dev-libs/libcdio-paranoia <dev-libs/libcdio-0.90[-minimal] ) ) virtual/libgudev:= virtual/libudev:= )
The (e)udev problem comes from using the mtp and udev flags (which of course I can change, but this is just broken). But nonetheless would gvfs, libsoup, glib-networking and libproxy be added for no reason at all. evince runs *fine* without gvfs, the bookmark function is disabled, and everybody can live happy ever after. Please move the gvfs dependancy to the gnome use flag, where it belongs.
The reason is to RDEPEND on a package that is used at runtime, otherwise, people will simply save bookmarks and, later, see that nothing was saved because of a missing dependency. Also, I see no direct dependency on libproxy neither glib-networking, about libsoup dep, it can be avoided with USE="-http"
I agree with the original poster and gvfs should be an optional depenedency. gvfs is not a trivial or small package. The functionality it adds to evince is not required. It seems like the perfect example of an optional runtime dependency. I've made the RDEPEND only for USE=gnome on my local overlay for evince 3.14.2 (current stable) and it appears to function just fine. Please reconsider making this dependency optional.