`CAF::Service` should be an underlying API, much like `CAF::Process`.  I don't think you should be trying to artificially restrict it due to possible interferences with another NCM component, in the same way that `CAF::Process` can run commands that might interfere with other components.

> Also, this would imply that the Solaris' `enable` and `disable` actions supported here would add `-t`. It would
> be the job of the component controlling SMF to decide what persists on reboot and what doesn't.

The component controlling SMF may want to use `CAF::Service` to enable or disable a service.  So you can't blindly add `-t` to everything.

I'm not sure I agree with your suggestions that `systemd` would be handled by:

> `"/software/components/chkconfig/ncm-module" = "systemd";`

I expect the `systemd` schema will look quite different to the `chkconfig` schema, in the same way that the `smf` schema is quite different.  Attempting to glue them together under the `chkconfig` namespace is confusing and will attach it to a legacy platform-specific meaning that will eventually be harder to replace.

I think it's better to come up with a component name that is generic and platform-agnostic, and which passes off to `chkconfig`, `systemd` or `smf` as appropriate for the platform.