There are situations where rebooting always has an impact, even if you're in a cluster. For instance take a database cluster in active/passive configuration. Switching over may be fast, but it will always take some time. Now you could design the app to be able to handle this, but this increases the complexity tremendously, esp. when dealing with transactions (in the DB sense of the word). Using ksplice removes this loss of service, however small, in most cases.