Verbs systemctl halt, systemctl poweroff and systemctl reboot, if invoked under a non-root user and logind is not available, are governed by polkit action org.freedesktop.systemd1.manage-units.
(For systemctl halt logind is obviously never available, as there's no corresponding bus method.)
However, halt, poweroff and reboot in the same conditions say "Must be root." and bail out. Shouldn't they be equivalent to systemctl %s in this regard?