Yes, it would be more flexible. In fact, some people externalize all their SQL queries for this reason.

The benefits are flexibility and that a database person can update the stored proc without knowing Java. As long as the stored proc signature doesn't change, this works well. If the signature changes, you have to update the code anyway.

You wouldn't have to redeploy the WAR. You would likely have to restart it though.