Потомучто потоки для выполнения берутся из пула. Следовательно этот же поток потом может достаться другой задаче, либо если будет идти выполнение mapreduce|filter то одни элименты будут обрабатываться с иным приоритетом, который когда то по необходимости выставил программист. Поэтому при таком финте нужно не забыть вернуть приоритет по окончании выполнения.
Разве это проблема? Перед запуском выставить приоритет, после окончания восстановить. А сейчас получается, что нужно этот код выполнять столько раз, сколько элементов в контейнере.