You call a controller method via a Request, you should not call the method directly. If it's a support method (and not an action), it should not be in a controller but in a separate class, which you can call directly.
Correct. If it is routable. And don't forget to execute() it, this will only create the request,
If it is not routable (i.e. there is another route that captures this URI), you need to pass FALSE are parameter to prevent a redirect to another controller by the routing engine.
Your action_function can return anything, which can be retrieved from the response body. So in a one-liner: