The first time it is loaded as root so that it can run gdm, the GNOME Display Manager, which needs root privileges in order to be able to read /etc/shadow when you enter your login credentials.
The second time, it is loaded under your own user ID, because with systemd, it no longer needs to run as root while you are logged in as an unprivileged user.
Yes, kernel mode-setting is an absolute requirement. Without it, the xinit executable must be SUID, unless one foregoes the use of a display manager and instead logs in at a tty, and then manually starts X11 — i.e. what used to be called “runlevel 3” in sysvinit-based systems.
systemd does play a role in why X11 no longer requires running as root, but I’m not sure how exactly it mitigates this — possibly via logind and PAM.