I am not entirely sure this is a bad decision at all. I think we can assume that at the point the high RAM job decides there are speculative tasks to execute, there will be certain good tasks that will not need speculation, that are still running and will come back to the job tracker. At that point, we can certainly run the speculative tasks of high RAM jobs, and there will be no starvation. I certainly don't believe there is going to be guaranteed starvation in any case.
Also, our speculation heuristics at this point are only now improving (with
HADOOP-2141) and there is a good chance users of older versions of Hadoop (0.20 and before) will not rely on speculation to work that nicely anyway.
Also, in the extreme case that this condition of starvation is indeed hit, there is the workaround that the user could kill slow running tasks if he thinks the job is taking too long to finish. This is not the greatest workaround available, but will work in the short - medium term.
So, I would definitely recommend we favor cluster utilization as I suppose is done in the last patch.