how come you get people who have to rehome their fish as they get too big for the tank? Somebody gave 3 fully grown oscars to my lfs which were only kept in a 3ft tank
Many species of fish that get big will actually get too big for most tanks. Oscars are a classic example. They can easily grow to 12 inches or more in length. If 3 Oscars are kept in a 3ft tank they could get to 8-10inches without too many problems. This is smaller than they can get but still too big for that particular tank. The other problem being there were 3 Oscars and when they matured and paired off, there would be one fish left out. This fish would eventually be killed by the pr. Then the pr might actually turn on itself and fight due to the stress and confines of the small tank.
There is also the possibility the tank wasn't being cleaned enough and or the owner was getting sick of cleaning it all the time. Then they got rid of the fish because it was too much work keeping them in the small environment.
There is also the quality of life issue mentioned by fishyfreak. It is preferable to have fish in a tank that is big enough to let them move around easily and not feel stressed out by the confines of a small tank. The tank should also be big enough for the fish to breed if they choose to do so.
As for the 1inch per gallon rule, there are too many variables to use it successfully even as a basic measurement for beginners. If a fish is small and only has a tiny body mass then it won't need as much water as a bigger fish with more body mass.
eg: neon tetras vs oscars. You can have 10 x 1 inch neons in a 2ft tank without any problems. But 1 x 10inch oscar would be too much for a tank of that size unless you had a huge filter and changed the water each day. Even then the fish would be unable to turn around easily or move about the tank.
This example shows 10inches of fish in a 2ft tank, one works and the other doesn't.
There is also the issue of how much you feed the fish. Again 10 x 1 inch neons won't eat a lot of food and the water will stay cleaner for longer. Whereas 1 x 10inch Oscar will eat enough food in one meal to pollute the same tank. The amount of food the Oscar gets is simply too much for the tank to handle, but the neons food is unlikely to cause any problems.
Then you have fish like angels. On average they grow to about 4inches long (not including tail) but can be 5-6inches high. However, most of the height is fin. They are narrow fish with a medium body mass but big surface area. Are they 4inches long and therefore equal to 4inches of fish, or are they more than 4inches of fish due to their height? They can eat a lot but won't produce as much waste or mess as a 4inch bristlenose catfish. The bristlenose doesn't do much swimming around and will often tolerate much dirtier water than the angelfish.
Anyway if you want to use the 1-inch per gallon rule then go for it. But there are lots of variables that can affect that ruling. My preferred way of telling if a tank is overstocked is to monitor the nitrate levels. If the nitrates go up rapidly between water changes then the tank could be overstocked, or it could be getting too much food or not enough water changes. If the nitrate level stays low or doesn't go up much between water changes, then the stocking level is probably fine.
If you don't mind doing lots of water changes you can easily have more than 1 inch of fish per gallon of tank water. However, if you don't like doing water changes then have less than 1inch of average fish per gallon.