So if I had 3 ip addresses for a domain, I configure this with my authoritative dns server, but is this the server that cycles through the ips that it hands out, or does it give all 3 out to the recursive dns server and then the round robin is handled here?
Round robin must be handled at the recursive servers, because if it were handled on the authoritative servers, then DNS caching would be broken with round robin enabled (because the round robin would invalidate the recursive server's data on every request).
The first DNS client that queries the server to resolve this host’s name receives the list in default order. When a second client sends a subsequent query to resolve this name, the list is rotated [...]
So to my knowledge, the recursive server is the one that has to be doing this rotating, or else the addresses wouldn't rotate on every client request like the docs suggest.
And to answer the other part of your question, the authoritative server absolutely gives all the addresses to the recursive server. You can verify this by running
dig example.com into a unix prompt (dig sends a recursive query by default).