NASA is in a strange place right now. Commercial launch capability is growing quickly, but the recent SpaceX failure underlines the fact that they may not be ready for prime time just yet. So the question is - does NASA spend these dollars to develop a heavy launch capability, or do they wait, cross their fingers, and hope that there is a commercial capability in place during the desired timeline?
At best, they spend the money and have a redundant launch capability. At worst, they don't spend the money AND commercial launch capability dies on the vine, and we are then left with no heavy lift capability at all.
And for the anti-NASA crowd that will be chanting "Pork! Pork! Pork!" - note that NASA is also trying to slow a massive brain drain of experience and knowledge from the shuttle program (yeah, which happens to keep the district congress-critters happy). Not having a project to work will mean watching all that experience walking out the door, gutting NASA's capability to do anything in the future.
NASA has a lot of judgements to make, several of which in hindsight will be seen to be redundant and costly, but without a crystal ball they need to make the decisions based not on cost-efficiency, but what will leave them with a exploration lift capability. That sucks, but that is not NASA's fault; they have to ride the waves (with a period T of 4 years) of the political seas.