I know the -r flag should print the real group the user is in. But since -G already prints all his groups, does this make a difference?
Não.
What does id -gr xxxsome_user really print out? How can a user have a real group? I thought only process could have effective and real groups.
Isso mesmo. O padrão do susv4 é um pouco mais explícito que o manpage do linux:
If a user operand is provided and the process has appropriate privileges, the user and group IDs of the selected user shall be written. In this case, effective IDs shall be assumed to be identical to real IDs.