You also have some features at your disposal which otherwise would require manual programming. Like hierarchical projections from data from the db, projections to a custom type, grouping into a hierarchical structure (key - list of values), easier way to execute db functions, use in-memory code together with projections.
These things are all possible with our own query api as well, but they require some manual programming and it's not really straight forward.
Another benefit of our linq provider is that queries between selfservicing and adapter look exactly the same (except perhaps the linqmetadata ctor call). THis can be a benefit for people who want to switch between selfservicing and adapter: the amount of work to make the switch is much lower.