Not really, You think of this from a single-Machine perspective.
Think of it as this:
host machine running KSM:
In all these machines there is bound to be a lot of similar pages of memory allocated. For most (heh?) uses where this would be an improvement you run the same distribution+patchlevel on all VM's with some minor differences. In these cases things like prelink and memory randomization are in effect making the binaries different on disk, however, once you load them into RAM, the working state of for example /sbin/init is bound to have a LOT of pages in common between the four systems (host+3*VM).
And that is where you can get some neat memory savings.