If your OS isn't sharing duplicate memory blocks already, you're using a shitty OS. (Linux already shares dup read only blocks for many things, like most modern OSes).
That depends on how the memory gets duplicated. If it is duplicated because it comes from the same library or because it is the result of forking a process, you're right, every OS does that. But if it is because the memory content comes from independent processes doing independent things and the result happens to be exactly the same, it is new. In the former case, if two processes are sharing some memory, one process decide to write over it, and the other does exactly the same write, then the result is two unshared pages. In the latter case, they will also become unshared at that moment, but after a while the OS will notice that they are the same again and make them share again.
I think that there is not a lot of use cases of KSM actually apart from the VM use case. That's why nearly no OS provide that service until today. And even if Linux provide that, it is likely that most people running a Linux desktop will not enable the feature because it wastes clock cycles to ask the OS to constantly scan through your memory to find pages to deduplicate.