Well that was surprisingly simple. We can now start any lxc from systemd.

For example, in /etc/nixos/configuration.nix, I now have:
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix

      ((import /root/nixpkgs/pkgs/build-support/build-lxc/module.nix) (import /root/serfdom.nix))
      ((import /root/nixpkgs/pkgs/build-support/build-lxc/module.nix) (import /root/router.nix))
      ((import /root/nixpkgs/pkgs/build-support/build-lxc/module.nix) (import /root/erlinetrc.nix))
    ];

and then a "nixos-rebuild -I nixpkgs=/root/nixpkgs/pkgs switch" makes it all work.
I might change the API so that we can pass pkgs through (i.e. buildLXC provides it). That way we can drop the -I in the above. We will also want the service configs to be able to express dependencies between each other and have that exposed to systemd, but that doesn't seem a huge challenge. But this does appear to Just Work.