I haven't used Apollo Server lately. But the way you describe it doesn't address the core issue, which is the initialization of the intermediate objects in-memory. So just to give an example, if I wanted to query for the projects of listings of my company, I can write it this way in GQL:
me { company { listings { projects { id name } } } }
This will initialize: a User, a Company, Listings and Projects of all listings.I can also write this in SQL using a couple of joins and return an array. The memory consumption is trivial in comparison to the original request.