Couldn't systemd hand off all that information to the X server when starting it and allow it to do the "offensive" calculation?
Or perhaps work with the X folks to find some alternative way? We do own the whole stack, as Keith points out, and systemd *seems* like the right place to do this kind of thing ...