What is the point of an action returning ActionResult?
Returning an ActionResult instead of "just doing whatever the ActionResult is doing" (i.e. using Response.Redirect directly or trying to render out a View through the Response OutputStream directly) gives you one really nice advantage: Unit Testing is really easy on that, especially since you normally do not need a web server to unit test MVC Projects.
Addendum: As an example for a redirect:
If you do
return Redirect(newUrl);
in your controller, your Unit Test can now
Addendum 2: And while I am on it, here is an example of a Custom ActionResult:
http://www.stum.de/2008/10/22/permanentredirectresult/
This is just to show that they are not "Black Magic". They are actually pretty simple: Your Controller returns an Action Result, and the MVC Runtime will eventually call the ExecuteResult function on it, passing in a ControllerContext that your ActionResult can interact with. The whole point again is to separate the parts of M-V-C, to make Code Reusable, and to make Unit testing easier, or in short: To give a very clean Framework.