A Set of Standards for Error Codes
I'm sure that someone is going to come up with a much more exhaustive answer, but for a good start, you need to understand that there are MANY different standards for reporting vehicle diagnostics.
For example, take a look at the OBD II Pids Article on Wikipedia. Think of your car's computer as only as powerful as the inputs (or sensors) that are wired up to it. Now, combine that array of sensors, constantly providing a gigantic stream of information (LOTS of raw data) with a limited list of events... individual error codes that can be reported. "I just saw a cylinder misfire, because the data told me!" Or, "There's WAY too little oxygen in the exhaust.. the engine is running rich!"
What can't the light tell you?
Imagine a vehicle equipped with ODB2 is collecting data. It knows of a limited set of condition codes that can be matched up to a particular data event. If the ODB2 standard doesn't support a particular vehicle condition, the computer can't report it.
If there aren't relevant sensors hooked up, again.. the computer can't report it.
But it's not JUST about the computer...
There's also a huge difference between being able to report a condition, and being able to interpret exactly what the error code means. It could be a code that is a symptom of another code, and hence should be ignored. The codes, by themselves, simply help narrow down the issue to possible reasons. They're a tool in the mechanic's arsenal, but physical inspection is often required for a complete analysis.
Why did the Secondary Air Injection fail (P04111)? Because the rivets that hold the casing of the fan together broke. The code lead to the correct system, but failed to tell me about the rivets.
Why was the car running rich? Maybe there is a vacuum leak.. a brittle 10-year-old rubber hose finally split. The computer can't tell you that, because it can't examine the hoses, only the data being collected.
Find out which diagnostic system your car uses, and you can check out the corresponding standards chart to see a full list of the reasons. There's a good chance that your vehicle is ODB2.