Not sure if you followed the links I posted, but as Poettering said, the problem is that there are collisions in UUIDs. UUID generation should be robust to random number collisions.
Purpose of UUID is to be unique, not random. There is no need to wrap RDRAND into another random generator. One can use time/counter as one part of UUID and kernel provided PRNG, e. g. getrandom(2) for another part.
During early boot, the kernel will either block indefinitely and/or log the uninitialized urandom read as a security problem. It was the entire reason that brought systemd's rdrand code into existence.
2. What algorithm? It's just RDRAND.
3. Where else would you pass them?
4. What do you mean 'they'? CPU manufacturers?
You might also be interested in this comment: https://github.com/systemd/systemd/blob/bcac754d66374782a85a...