Don't know much about it (svn in particular), but generally versioning is done chronologically, the idea being that you start with nothing and it gets better ....
CVS basically does diffs of a newer commit, saves this information, and then allows you to request a copy of <<somefile>> as it existed at any particular time since its inception --- patching the source file with the appropriate diffs as necessary to get "up to date" (or reverted to whenever or whatnot).
I'd have to assume that svn does it much the same way ... as you probably noted, they simply claim to have a better mousetrap due to also tracking changes in tree structure, file meta-data, etc.
I'd think many 'Nixes have had CVS built in (a client, anyway) for some time (what is it, nineteen years old now?), and if you've got native svn support, you're using a little "sexier" distro (example: FreeBSD has a cvs implementation in the "base" install --- if you want subversion you shell over to the ports tree and "make install").
As for a Mac GUI, I'd imagine that one's being worked on if it doesn't exist already. But anyone who writes a GUI to interface an existing CLI program in Apple land might just want to be paid, so I don't know about any alternative.
HTH,