It's not that it can't be done, or hasn't been done - VSE used PVCS as a backend (even though it hid it pretty well). ObjectStudio users tend to use SourceSafe or other Windows version control systems. The real disconnect comes with systems like VisualWorks, Squeak, or VisualAge Smalltalk - all classic image-based Smalltalk systems. Avi explains the issues well here:
The thing is, when you move away from code and into arbitrary data files, most of the useful features of *any* version control system go away. How well does the darcs theory of patches work on images? Can CVS insert its conflict markers into a Word file? And how many times do you need to cherry pick changes from a patch someone committed to an obscure branch of that project timeline? The most you usually need or are able to do is to associate a specific revision of a binary file with a specific version of the code, and it would be trivial to extend Monticello [VCS Avi has worked on] to do that if the need came up
Here's the commentary that I wondered about in Ziggy's post:
Smalltalk, on the other hand, doesn't integrate well with the version control systems we have all grown to love (or at least tolerate). Avi Bryant points out that these problems don't really surface for Smalltalk developers, because the Smalltalk VM can keep track of every change, and tag each change with more metadata than SCM tools can possibly capture.
Sorry, but I don't buy it. I call this "Smalltalk Disease" -- the arrogant tendency for Smalltalkers to dismiss a problem because they can mutate a Smalltalk image to nearly eliminate it. (And, if they haven't done it themselves, or the necessary features aren't present in your VM, then at least someone has done elsewhere, presumably in some production environment.)
OK. So you can upgrade your VM to handle versioning and merging of Smalltalk methods. Fine.
What happens when you want to version something else, like, data files, documents, or images? I guess CVS/Subversion/darcs/etc. aren't so useless after all....
Hmm - it's not a VM level thing - the code and parse trees are all available at the Smalltalk level - which is a large part of what makes them easy to deal with. The common Smalltalk VCS systems - ENVY, Store, Monticello - all deal with code artifacts at that level, and use some kind of back end (typically a database, although Monticello supports multiple back ends) to store source code. One could posit a CVS style back end, and I've seen it done - our partner Heeg has plugged in such systems for customers on a consulting basis. As to external artifacts? As Avi says, it's not that big a deal to extend that way, and - in fact - VW 7.3 (which will be released very soon) can handle external artifacts. It's become a big deal because of things like the Web Toolkit, where there are ssp files (and image files, etc) that make up part of the "whole system".
There are issues with the various Smalltalk VCS systems - ENVY doesn't handle merges well, Store has had problems with the nature of its db schema - and, as Avi mentioned in his post, Monticello is not perfect either. The point is, the various file based systems aren't perfect either, and they simply don't mesh well with image-based development.
Update: Colin Putney comments here, and Patrick Logan has some thoughts here. Ziggy makes follow up points over here