I'd prefer if we could do this through config and only enhance the C
APIs where needed. With the new include logics and whatnot, this can
come in the form of a config library.
You can do includes but you can't put complex functions with parameters into a config library. So you would end up having to do it as routes with pseudo-variables to pass data around. I think this would be very messy for something as complex as Outbound - and there is always the chance you might use a route-name or variable name that someone else has (making it hard for them to add Outbound support to an existing configuration).