If Alice takes a GPL program, modifies it, and sells it to Bob, nobody but Bob can demand Alice share the source. If Bob does nothing, nobody but Alice ever sees the source.
Sure, the GPL allows it, but the GPL doesnt allow Bob to dictate what Alice does with the source once she has it (GPL v2, term #4). If she decides to distribute it, his recourse is to not do further business with Alice. That could be enough, but if Alice sees sufficient short-term benefit, that may be a risk she is willing to take.
And those rights are automatically passed on -- if Alice sells the product to Bob and he resells it to Carol and she compiles it and gives the binary away to Doug, Doug can call Alice and demand the source.
Bob is the Navy. Alice is the contractor.
Alternately, Bob is me and Alice is you.
Either way, the GPL allows it.