Abstraction really is a marvelous thing, it allows one to understand and manage complex constructs whose details can overwhelm. The power of being able to take a complicated process and treat it as a "black box" where one only has to worry about inputs and outputs is so essential and foundational that it often gets taken for granted. We use it so often that we often don't even think about it, but that can tend to make one forget the limitations of abstraction and the care that must go into determining whether a system can actually be abstracted, let alone the difficulties in actually creating such a system.
For example, the entire field of computer science is essentially one level of abstraction built upon another. When you save a file on your computer, the windowing system passes on a command to the operating system, which passes on a command to the disk controller, which passes on a command to the disk hardware itself, which writes a series of bits to the actual disk platter. Each level has its own set of commands and results, and doesn't understand the level above or below it. Each layer is completely self contained and deterministic, completely defined as to what it will accept as input and what it will return or pass on as output.
However, there are some serious difficulties with abstraction when done on a quantitative level. The biggest problems have to do with relevance of process, process isolation, boundary conditions, error handling, scaling and an additional factor that I'll call areality.
Relevance of process - this is the problem of ensuring that the abstraction captures all necessary information that needs to be passed on to the next higher level. For example, an operating system may not need to know exactly where on a disk a file is stored, but it does need to know information such as the size of the file, when it was written, etc. This information needs to be able to be passed through the various abstraction levels.
Process isolation - One of the key aspects of modularizing a process is to ensure that you're captured all relevant information required to isolate that process and ensure that there aren't any untracked factors that can influence its behavior. If there are variables that aren't accounted for in the process it will cause it to be unpredictable in it's behavior, which defeats the entire purpose of abstraction.
Boundary conditions - This is the method of ensuring that each level passes information that fits within a range of values that's acceptable to the next level. For example, an operating system may have a limit on file sizes (in Windows 95 the maximum file size was 4 Gb). That means that the disk controller will cause an error if it reports a file size larger than the maximum file size. Similarly, if you're trying to create a file larger than the free space available on a disk, the disk needs to be able to pass a message up through the abstraction layers that there isn't enough room. This, by the way, is one of the biggest sources of security problems in computer systems since most subsystems don't do proper testing of inputs.
Error handling - Things break or don't perform properly at times, and each abstraction layer needs a way of either (at a minimum) reporting or (usually) recovering or (ideally) correcting errors in the various processes it deals with. Unfortunately many systems don't do a good job of dealing with errors, and not dealing with an error will at least cause faulty results and at worst the collapse of the entire system.
Scaling - Another problem that can occur is one of scaling, in other words the fact that while certain relationships and processes may work at a level of X number of events, they may not work properly at 100X or 1,000,000X. This can also arise when individual events that are treated as isolated start to "spill over" at much higher levels of activity.
That lengthy intro complete, let's get to the heart of the matter - why I think that this type of abstraction is causing serious problems in various aspects of our society. Everyone has experienced how computers, completely artificial systems that are capable of being completely defined at every level of abstraction, can still have problems in dealing with various aspects that we've described above. These problems reflect failures in one or more of the above issues, and show how difficult it is for humans to create reliable systems even in a completely artificial and deterministic environment. The real problems begin when we start introducing human beings into the process. Either through individual errors in dealing with the mechanics of transmitting information from one level to another, or through some of the reasons I described above, or due to the fact that human beings are not entirely rational creatures, the entire process fails. We see that the abstractions used to convert parts of the process into "black boxes" discarded too much information, and that the individual level can not be simplified to the extent that it has been.
In the specific area of economics we can see the issue I defined as "areality" in addition to the other problems inherent to abstraction. Basically the problem is the amount of economic activity and liability based on the underlying reality. For example, in the traditional model of agriculture, we can see an acre of land and the value of crops that it provides. As we move up one step, we get to the level of distribution, another step would be transportation, further on would be legal fees associated with running the various businesses involved, banking costs, advertising, etc. The key point is that if we were to picture the different levels involved, we'd see something like a pyramid or rectangular prism - in other words, the value of all the higher levels is directly related to and dependent on the underlying economic footprint of the productivity of that acre of land. The cost of the higher levels can't exceed the value produced by the underlying economic reality. Even the traditional commodity trading fits within that model, since the potential financial losses are isolated from the underlying economic footprint of the commodities they trade. They act as an insurance exchange, and since they're traded on an exchange their prices are visible to the public. The exchanges ensure that the individual traders are responsible for covering their losses, and a crop failure may cause problems for individual contract owners but will not cause greater losses throughout the entire economy.
The real problems begin when we start creating exotic financial instruments that are no longer connected to the underlying economic footprint of that acre of land. Since they're unregulated and they're typically not traded on an exchange, the economic area of these financial instruments can greatly exceed the area of the economic footprint that they're based on (in this case I'm using agriculture as an example, but it applies to all sorts of commodities and even other financial instruments). So now a crop failure doesn't just impact distribution, advertising, etc. but it's costs can be far greater than the economic basis for the financial instrument. What we have is an inverted pyramid with a tiny base of economic reality and a huge overhang of potential financial liability, far larger than anyone at any level in the abstracted levels can handle on their own. Some of these financial instruments may counterbalance each other, but since there's no regulation there's no requirement that they do so. The risks from these kinds of instruments failing are so large that by definition they become socialized; either directly by funding an investment bank's losses or indirectly via the costs of such a failure rippling throughout the economy.
It's pretty clear that we can't run an advanced society without abstraction, but I think the lesson of the past several years (and other financial crises) is that we can't simply assume that people are capable of designing such systems without oversight or controls. Whether one feels the financial crisis was handled properly, the fact is that even if all the various parties involved were punished by being sent to prison it still would have been a case of reacting after the damage was done. Simply put, there are no alternatives to regulation and various "safeties" in our financial system. I've gone on about this before, among other things I think that the idea of limited liability has been abused in out system. The idea that the market will correct its own failures is true but only in a trivial sense that markets tend to avoid doing things that lose money. The problem is that if individuals find a way of making money while artificial creations like corporations lose money, there's no incentive to change. But above all, it's important to make sure that we don't allow individuals and corporations to create ever larger financial liabilities that dwarf an economic base that can't support them.
BTW, it appears that I'm not the only one who's seen our current economic system as an inverted pyramid.