Тут есть ровно одна проблема — недетерменированность времени выполнения запроса (если это БД).
Как правило, за счет разбиения запроса на куски (что необходимо для демонстрации прогресса) получается увеличение времени выполнения (как правило, нелинейное). так что тут в каждом случае приходится решать, чем жертвовать: предсказуемой скоростью progress bar'а или производительностью.
А если большой объем данных берется из хранилища с предсказуемым временем доступа — тут, думаю, никаких проблем впринципе нет.