When used _effectively_ with existing copyright law, dual-licensed GPL/commercial software is the _ultimate_balance_ between freedom and commercial interests.
In the case of publicly funded software development, I would grant 2 copyrights to the finished work. One would go to the organization who developed the software, the other would go to the government (or government agency/authorized organization).
The first copyright could be used by the developing entity commercially. They could resell, license and/or further the development of the software commercially once the contract is completely. It was their innovation that led to the creation of the product, so they _should_ benefit. And their competitors should not be allowed to simply "take it" like typical "public domain" or "non-GPL, BSD-like" licensing allows them to do.
The second copyright would be used to secure permanent GPL licensure of all development done during the government contract (again, assigned to an agency, private, non-profit org like the FSF, etc...). So the non-commercial/end-user public gains rights to the software paid with tax payer dollars. It's only fair.
Regarding 3rd parties, they now have a choice in what to do after the contract is over and the software is release. They can help the public develop the GPL version for free. Or they can license the commercial version (usually for cost), by negotiating with the original contractor. The key is that there *IS* choice for both public and private entites, and that is the flexibility dual-licensed GPL/commercial brings using existing copyright law.
It is important that the dual-license approach be GPL/commercial. If we use something like MPL/commercial -- where licenses like the MPL allows the commercial developer to take community developments without compensating the copyright holders of the modifications -- then the original developer/contractor could "leech" on post-contract developments by the public. The idea is that once the contract is over, the commercial organization no longer gets "free development" from the public ([funds], in the case of the original contract), but has to negotiate any new GPL-licensed developments after the contract's expiration back into the commercial version [at their cost].