Ref also needs to be allocated, as we sometimes have not-trivial logic in 
beforeWorkOn(ref, node)(needer for reducable)
and afterCreateRoot(root: Ref[T, ProgressStatus])(currently used by concs, but the same way how it's used for reducable).

This negates any performance advantage of having separate invokeParallelOperation, but incurs maintaining cost.
If you insist, i can do it. But It still seems like something it will make maintaining harder(we'll need to always make sure that we don't break sequential version), while providing no advantages.