Как пользователь, вам, как правило, не нужно беспокоиться, это действительно связано с разработчиком источника данных. Если поставщики данных просто реализуют IEnumerable, вы в основном выполняете LINQ для выполнения объектов, то есть он выполняет операции с памятью для коллекций. IQueryable предоставляет источнику данных возможность преобразовывать дерево выражений в альтернативное представление для выполнения после выполнения выражения (обычно путем перечисления), что и делают Linq2Sql, Linq2Xml и Linq2Entities.
Единственный раз, когда я вижу заботу конечного пользователя, это если он хочет проверить дерево выражений, которое должно быть выполнено, так как IQueryable предоставляет выражение. Другое использование может быть проверка провайдера. Но оба эти сценария действительно должны быть зарезервированы для разработчиков других поставщиков запросов и хотят преобразовать выражение. Суть Linq в том, что вам не нужно заботиться о реализации исполнения выражения, которое будет использоваться.