Software key stores and hardware ones have different use cases. When you need a certificate for a server to authentify that a client has hit the correct server a software key store is enough. It will be simpler to have it both in a production server and in a spare server in order to speed up recovery procedures. In that case the certificate does not guarantee much more that this server is currently acting under that name for that organization. But at a different moment, it could be a different machine, in a different computer center and running a different version of the application. In that context, sofware key stores are enough.
Now say that you need to securely prove that one document has actully be signed by Mr. X head manager of society Y. If Mr. X only uses a software store on his computer, a sysadmin of the Y society could make a copy of the store and have plenty of time to try to brute force the secret key without anybody being aware of the attack. But if Mr. X uses a smartcard to store his secret key, the attacker have to first steal the smartcard which should be immediately noticed and the certificate would be likely revoked before the key could be compromised. That's the reason why when you really need strong personnal authentication, you absolutely need a hardware store. BTW it immediately comes to be a 2 factor authentication because it involves something you have (the smartcard) and something you know (the pin code to unlock the secret key). In some countries, a digital signature is only valid if you can prove that the secret key has only be under the exclusive control of its owner, which is almost impossible in real world (read in a corporate organization) without using a hardware container for the key.