It would be better if ActionFunction were named... something else, though.  As @jroper describes perfectly, it's not a function on actions, but a function on requests that can be used to build actions.