The major thing I've learned is that, more important than the product is the process.
If you've implemented ClearCase (CC) using an SVN-type model, then SVN will work just fine and be a lot cheaper.
On the other hand, if you use deferred branching, build-by-label, and dynamic views (or can), which we use to great advantage in saving time and effort, and improving reliability, you will seriously regret losing these features. (Not to mention build management, UCM, etc.)
I find most people use the first choice, which is like using a Ferrari in rush hour traffic...
Example?
Define labels GA, SP1, SP2 (you can have as many releases between GA and SP1 as you like, not relevant, and remember, CC labels are NOT the same as SVN).
GA was your base release,
SP1 is your current release.
SP2 is your next release.
The current release is based on GA and SP1.
The next release is based on GA, SP1, and SP2 (see CC config specs)
Begin QA.
Development is doing ongoing work for the "next release", and users can reference (not change) GA and SP1, and can apply SP2.
Maintenance is doing work to repair defects found by QA and can reference GA, and apply SP1.
Case 1:
In ClearCase, the mere act of applying the SP1 label makes the fix automatically available to the Dev SP2 release team. No work. Nada, Zero.
In Subversion, you would be making the change on a QA branch, and then (hopefully, remember to) migrate the change to SP2.
Case 2:
Before you ask, certainly, if you add an SP2 change, you will have to branch to add a subsequent change for SP1, as it would be in most systems.
In my world, real world numbers:
Case 1 happened 122 times for my last SP (8 SPs per year).
Over 800 changes per year I didn't have to make in ClearCase I would have had to make if I used the Subversion model.
Case 2 has happened 6 times since early 2002 when we installed CC.
Look at the process, not just the product.
(Sorry for length, it didn't atart that long :-)