SpaceX can implode tomorrow, it can be sold to China, it can decide that it doesn't like Emperor Trump (shivers...) and it won't launch anything anymore for the Americans.
NASA is good at doing very big and actually pretty efficient projects when you take reliability into account.
Yes they are job projects, yes they feed contractors, but this is OK, the space program needs to be a job program this is how you reap one of the main benefits of it which is the distribution of knowledge and ideas across the industry there would be no SpaceX without NASA. If we learned anything from the Apollo days is that you can't stop making big rockets because once you do it would take you ages to regain that capability, the cost of the SLS and any follow up project after that would be worth it if nothing than to preserve knowledge, skill, and manufacturing capabilities for future generations.
And on a side note I am very skeptical of SpaceX's "interstellar rocket" yes I'm just another ahole with an opinion but they are effectively trying out the same thing that the Russians did and very unsuccessfully as the new SpaceX design is effectively the Soviet moonshot rocket.
The N1 had 30 engines, the design was deemed "ingenious" (even by the americans) the Russians could not build big engines, but they had an extremely safe, effective, and very very powerful small engine design that is still used today the NK-15/NK-33. So they put 30 of those on the first stage of the N-1 rocket and it failed badly, all 4 attempts failed for "different" reasons but all of them tied to a single thing - too many "moving parts" any problem with a single engine even a slight thrust imbalance would lead to disastrous results, and having 30 engines on a rocket that have to operate with near impossible tolerances was simply not something that was achievable then (and perhaps even today).
There wasn't anything wrong with the engines, each engine on it's own was working pretty flawlessly, and on smaller scales the issues that the N-1 encountered during launch would most likely been controllable, or at least possible to compensate for long enough for the damn thing not to explode on launch or very shortly after it (the idea of an N-1 type rocket launching anywhere near a populated area is a freaking scary one).
Now it's true that many things have changed, the Russians had to control the engines electro-mechanically, there was likely no software involved but still when you add parts to a system you increase the chances of failures.
Both Blue Origin and ULA/NASA are basing their big rockets on a small number of big engines, SpaceX wants to use 42 Raptor engines which were initially designed for an upper stage single engine usage, I'm honestly very skeptical that this system can be reliable enough to get off the ground with that many engines.