Just to clarify, it's Tor clients that select which relays (entry guard, middle and exit) to use in circuits. Also, each relay in a circuit knows (or at least, could know, if it wanted to) both source and destination. But with three-relay circuits, no relay know both user identity and destination.
Also, by default, Tor changes circuits at 10-minute intervals.
If you hit an onion link, then that doesn’t even require an exit node.
And while that does not change for every request (that would be highly unpractical), all Tor clients offer you a very quick "get a new route" with just one click.