I've been working on a demo CD to send to recruiters. At least, that's the theory. In practice I've been playing around with shadow volumes a lot; adding a robust shadow volume lighting system into my engine's mesh classes.
I'm using a depth-fail algorithm to render the shadows. The silhouette calculation turned out to be pretty slow, so I'm caching it and calculating it every 4 frames or so. The volume itself is stored in a single VBO, basically using the mesh's geometry with the silhouette edges extruded. Obviously there's one volume per light/mesh combination. The contributions of each light are blended additively in multiple passes.
I'm getting about 43 fps for the above scene (Radeon 9700 Pro, Athlon 2100+). The slowest part is currently calculating the silhouette for the shadow volumes. Fill rate is also pretty poor, but there's not much I can do about that, short of buying a new video card. There are a lot of optimisations I can make. Dumping the shadow volume calculations into a vertex shader (article) should help a lot, as should adding distance-based culling for distance attenuated lights. Occlusion culling could also be used to cull out shadow volumes that aren't visible from a light source, which would be very useful in large, detailed scenes where there's a lot of occlusion.
I'm still not decided on whether shadow volumes or shadow mapping are best for general purpose scenes. Both currently have significant limitations. Shadow volumes do seem more robust in general though, if slower. OTOH, Shadow mapping does have the advantage of working very well with the image-space occlusion culling system I've implemented.