Right now, we call create_merged_selection_set repeatedly. I believe:
once per entrypoint, and
once per nested refetch query
A lot of work is done redundantly
But, if we had a topological sort of the client fields, we would be able to merge existing merged selection sets and avoid redoing the work
Also, a topological sort of the client fields will allow us to not stack overflow if you create an infinitely nested query, but instead, we would be able to identify that as an error when we're unable to make a topological sort