rkt actually uses systemd-nspawn to run and namespace the container. What rkt "adds" before that is downloading, verifying managing the container image and setting up the cgroup for resource limitation.
Doesn't systemd do that already (via machinectl, e.g.)?
systemd-nspawn is great! The workflow feels much more native than Docker on GNU/Linux host. The easy integration with networking, BTRFS snapshots, etc is very powerful.