I think a more CS way to think about it is shipping out a MVP vs. shipping out a 100% perfect, 100% feature complete, 100% bug free, 100% documented, product.
I think everybody would be happy to start a project and ship out that 100% finished product, but you'll spend your entire life working on this and die without succeeding because it doesn't exist. So the choices are to 1) not bother, 2) do what you can (MVP), or 3) work until you die as a failure. OP would want me to choose 1 or 3, it seems.
Choosing to work for a defense contractor with restrictions on projects gives them nearly as much benefit as without the restrictions. The fruits of your labor are still easily funneled into military projects and at a minimum they are keeping the company alive longer while serving the military.
This isn't someone doing 80% of what's required. It's them doing active harm to a cause while continuing to take credit for pretending to help.