The Linux kernel's VFS is an abstraction layer that sits between the filing systems and the program. All file access requests go through this VFS, and the VFS takes the appropriate actions. In this way, Linux is able to support dozens of filesystems, and any OS using Linux as the kernel will also be able to work with those filing systems, assuming they go through the kernel.
Other VFS's act in much the same way, only they are implemented as a library.
Library based VFSs can add support for additional features, shuch as:
- Accessing files over a network
- Browsing achieves like tar
These things can't be done by Linux kernel's VFS, because it has to mount file systems first. Because of this, the kernel based VFS can't peek at archives or retrieve network files, without a significant performance impact.