RadGridView uses LINQ (i.e. it plays nicely with any IQueryable assigned as its ItemsSource) for filtering (Where), sorting (OrderBy) and grouping(GroupBy). Naturally, it can only filter, sort and group on the properties (i.e. read Columns) of the entity that is returned by your ObjectQuery<T>.
So if you bind RadGridView to your ObjectContext.Customers for example, it will auto-generated columns for the Customer class and you will be able to perform the data operations on them.
I am not sure how a "quite complex object with joins and sub-queries" fits in this picture and what exactly are you trying to achieve. Can you do what you need by using pure LINQ against your complex objects?