For example, ports go into one repository, the kernel goes in another, documentation into a third, and so on.

In fact, that's almost what FreeBSD has done for years. Until recently, there were separate src, ports, doc, www, and projects CVS repositories; the only change now is that the src repository is SVN -- the others are still CVS. As for why the kernel isn't a separate repository: FreeBSD, unlike linux, considers the kernel to be an integral part of a larger whole -- not a completely separate entity. We find that developing the kernel alongside userland utilities and libraries is a very Good Thing.

CVSup and the related toolchain will probably need substantial changes to support anything which isn't CVS anyway.

Nope. All the commits to SVN-src are being replicated to CVS-src (and will be for years to come) -- SVN is basically being used as a new way of doing CVS commits.