"The United States Postal Service (USPS), also known as the Post Office and U.S. Mail, is an independent agency of the United States federal government responsible for providing postal service in the United States. It is one of the few government agencies explicitly authorized by the United States Constitution."
If the US constitution is how you're created, you're given a monopoly on delivering mail in the US, and you're governed by Congress, you're part of the US government.
The only tax subsidy the USPS receives is to fund things like free mail for the blind, election mail, and other "public good" services. They charge for the zip code database because it's a product that can make them revenue (which they desperately need), and it is, in fact, a proprietary invention of the USPS.
As the Wikipedia article notes, since 1971 it's been a corporation-like independent agency that's essentially unsupported by taxes. Since then it was supposed to operate in the black and it did for a long time, until it got hit by increased competition in traditional delivery services, digital communications... and the Postal Accountability and Enhancement Act of 2006 (which both keeps it from offering new "non-postal" services and gives it new obligations like prefunding healthcare obligations 75 years into the future).
I don't think treating zip or other geoinfo they've got as proprietary is a great idea, because it could be used to create a lot of value if it was let out on its own. But the value it has makes it a potential revenue source, and given the obligations and limited options they have, I can understand why they feel like they'd have to capture some of the value they've created.
Generally, all the powers in Art. I, Section 8 ("To raise armies", "To provide and maintain a navy", "To borrow money on the credit of the United States") are read that way, though the only one that has express exclusion language is the power to legislate over the national capital district.
http://www.federalreserve.gov/faqs/about_14986.htm
As the nation's central bank, the Federal Reserve derives its authority from the Congress of the United States. It is considered an independent central bank because its monetary policy decisions do not have to be approved by the President or anyone else in the executive or legislative branches of government, it does not receive funding appropriated by the Congress, and the terms of the members of the Board of Governors span multiple presidential and congressional terms.
However, the Federal Reserve is subject to oversight by the Congress, which often reviews the Federal Reserve's activities and can alter its responsibilities by statute. Therefore, the Federal Reserve can be more accurately described as "independent within the government" rather than "independent of government."
Nationally chartered commercial banks are required to hold stock in the Federal Reserve Bank of their region; this entitles them to elect some of the members of the board of the regional Federal Reserve Bank. Thus the Federal Reserve system has both public and private aspects.[18][19][20][21] The U.S. Government receives all of the system's annual profits, after a statutory dividend of 6% on member banks' capital investment is paid, and an account surplus is maintained.
[0] http://en.wikipedia.org/wiki/Fourth_branch_of_government
I have had to do zip code to location lookups to find ( I think it's called the Great Circle Calculation ) "within x miles of $zip_code".
I found plenty of companies wiling to sell me the data, sell me updated data quarterly, or API that after testing did not have data change in over a month, though from what I know about zip codes, and for our application, missing a zip code was not the end of the world, I just picked another close one. When drawing a radius around a point, if the point is missing but with so many zip codes, there was aways one close by.
1) How can they sell this? They don't apparently own it. 2) Why not use ones of the many zip, lat, long, databases that I seem to remember being pretty easy to find?
There's some logic behind the zip codes and how they are dished out. Unlike IP that has BGP to find the best route from IP to IP, USPS has none of this, so i imagine this was like trying to solve that "Traveling salesman" quandary with constantly changing and unknown locations. They had to make a sort of zip code prefix that at least gets them to the county level.
Lot's of good data here http://en.wikipedia.org/wiki/ZIP_code
This is like how telco's issues numbers, it was all well thought out ahead of time. You could get kinda dirty and run a loop from zip_code_1 to zip_code_1+1 with each one polling the USPS for a zip code lookup. You would have a pretty accurate database. At one "scrape" of data taking 5 seconds, in a month you would have your data. After that you would only have to test the gaps between numbers to see if new ones were added or just follow some usps page to keep up on new and deprecated zip codes.
There are too many sites that use geolocation with zip to not have this be a solved problem on the very cheap. Probably just another API, where in the future apps will just be lego like API's you copy and paste JS snippets to and from. :)