Here are the answers:
1.Default HTTP Method for Html.BeginForm() is POST,so when you submit form,Action method with [HttpPost] is invoked, where as other Action method with same name is invoked for HTTP GET method.
2.When you Log In i.e by clicking "Log in" button LoginViewModel will be passed and returnUrl will be passed when you're redirected to Log in page when you've tried to access directly another page without logging where returnUrl set to initial page you've requested.
See below link for BeginForm details.