Application.Restart
is working as it should.
It always terminates the current instance of the Applicaion and starts the new instance. -
Application.Restart Method
You should write your own custom code for "Restart" feature of your Game. You may write a Method -
"RestartGame"
in which clear/dispose all the current used objects, Reinitialize all the objects/variables required for New-Game.