Yes, on the x86 the G-bit is only useful when there is some other type of control (such as restricting it to Ring 0, which is what the kernel uses) or on an unprotected operating system1.
Think of the G-bit as an optimization for system calls: the kernel maps its pages as global so no TLB flush needs to happen. You still need TLB flushes on context switches between processes, but these are often a couple of orders of magnitude less common than kernel<->usermode switches.
You could imagine a scenario where G pages are useful for user processes, such as shared memory: switching between two processes wouldn't need to invalidate the TLB entries for the shared memory if the kernel was aware of this and used a G==1
mapping for both processes. TLB refills aren't actually that bad these days though because modern x86 caches a lot of the table entries even beyond the TLB to allow quick refills.
I don't think that setting the G and U bit is disallowed, but the kernel isn't going to actually set it up that way.
As a final note, you could actually imagine a read-only global mapping being useful, for something like the vdso mechanism. All processes would map that page, but couldn't modify it, and the kernel updates it as needed. Of course, I can't see how to actually make this work, since the kernel would need write access, and there doesn't seem to be a way to express "readonly for ring 3, r/w for ring 0" in the page table. Perhaps the kernel could use another mapping for this page, but I'm not sure if that's legal: having a mapping that overrides a "G" mapping (since if the G mapping is in the TLB, the CPU may never see the overriding mapping).
1 Technically it could be useful on a single user operating system where all user-mode processes have the same privileges, but the kernel is still protected from user-mode, but AFAIK that model doesn't really exist in contemporary OSes.