There are a couple reasons beyond portability. One is a standard interface for various kinds
of urls, like http etc. I suppose it might be possible to set this up using FUSE, perhaps
running a FUSE daemon and mounting ~/.gvfs/http or something. The point is that there has to
be a known mapping between urls and local FUSE paths.
Another reason is that not all resources behave like local POSIX files. This is obviously true
of most network resources and it was one of the acknowledged flaws with GnomeVFS that it tried
to pretend that everything was POSIX. I don't know enough about FUSE to know if it helps with
that issue but it would appear on the face of it to be tricky.
GVFS help by providing asynchronous APIs for almost all VFS actions, which again makes a lot
of sense for network resources. I presume with FUSE we must rely on the somewhat limited POSIX
AIO interfaces.