1) Each R.exe process can only host a single Shiny app, and each port can only be used by a single R process. So you'd need 10 different ports, one for each Shiny app. Shiny Server on the other hand can host multiple apps on the same port.
2) If the R.exe process terminates abnormally (e.g. an error at the wrong time) then your app will be down until you restart it. Shiny Server knows when apps go down and can bring them back up the next time someone tries to connect.
3) IE8 and 9 don't work with Shiny at all unless you have Shiny Server. This is because Shiny uses websockets to communicate with the browser, which IE didn't support until IE10. Shiny Server bridges the gap using older technologies to emulate websockets.
By the way, even when using Shiny Server, you still need R and the Shiny package installed on the server. Think of Shiny Server as a layer above the multiple R processes; it starts and stops these R processes and routes traffic to them, but doesn't replace them.