I went through the code. I kind of understand it, now. You know I like the idea, and I think we should have this facility in core. This is more a discussion for the future of where and how is this going.
Ultimately, with this 'structured array' thing getting everywhere, I think actions and #callback should end being the same. The only difference should be action_info, that is actions being visible to the system, and potentially wired up via an admin UI.
The only problem I see with using just the 'forms style arrays everywhere' callbacks for actions is how do you handle 'times' outside of the normal page workflow. For the normal one alter should be sufficient, but for hooks like cron? The current implementation does handle it, which is cool.
For the current code, I don't see the point of having context and object a must. Why not stuffing the object inside the context? What is the rationale?
Being particularly picky, it would be nice to have context the first argument, since it must be present. Always, even if it is empty.
I've made a confusing™ actions post on my blog =)
