Why should soldiers be forced to take assignments and pay they don't want? Contractors don't get forced to build a project for the military's price, they get to negotiate.
Soldiers should be able to choose whether to accept an assignment or quit their job. If the nation doesn't want to pay for a certain war/fort/whatever, the nation can sacrifice it, instead of impressing soldiers into service.