no way to call independent finalize functions
The new finalize callback interface simplifies the shutting down of a composition of mochi services, but it doesn't provide a mechanism for invoking specific shutdown mechanisms independently -- all finalize callbacks are invoked consecutively when the margo instance is destroyed.
Consider the case where a hypothetical service daemon provides clients with direct access to multiple independent providers -- for simplicity, lets just say 2 BAKE instances for whatever reason. These BAKE instances serve different roles in the service and can come and go independent of one another, but with the current interface they can only be shutdown together when the underlying margo instance is destroyed.
Maybe there's a way we can organize so there's multiple finalization callback stacks, keyed by a unique identifier -- at least in our case, that identifier would reference a set of providers that all provide a single, logical service (a mobject finalize stack would include the mobject provider, as well as all underlying providers like BAKE, sds-keyval, etc.).