Adding the setuid bit to the shutdown process will allow any process owned by any user ID to shutdown or restart the system with arbitrary delays.
While unlikely, it may also expose buffer overflows that allow unprivileged users to do more than this. With the setuid bit set, there is a possibility that the command can be invoked with input that causes the command to malfunction in a way useful to an attacker.
Even if you have a single user system, this can be a concern: if an attacker uses an exploit that allows them to run unprivileged code on your system, then setuid programs can provide a way to gain superuser privileges.
In contrast, the API used by the desktop provides much more limited actions (restart now, shutdown now, etc), and only allows unprivileged users to activate them in limited circumstances (user is an active local user, and there are no others logged into the system). If the application you're using has an option to use these APIs instead of directly invoking the
shutdown command, that would be preferable.