As he points out elsewhere in the article, trying to figure out whether the "Books" category should be a subcategory of "Entertainment" or "Arts" is simply a waste of time - both categories are arbitrary anyway. What Google realized is that what you need to look for is associations, which will emerge from the various links throughout the World Wide Web. Instead of trying to arbitrarily define "Books", simply see what comes up when you search for "books". Let the searcher decide if they're interested in "Entertainment" or "Arts" by adding search terms. Google might end up discovering that certain words keep popping up when searching for books, and suggest them as alternatives: "Perhaps you'd like to search for 'novels'?" Compare this to Yahoo's need to constantly second-guess what those associations might be, and subsequently being constrained by those guesses.
Yahoo, faced with the possibility that they could organize things with no physical constraints, added the shelf back. They couldn't imagine organization without the constraints of the shelf, so they added it back. It is perfectly possible for any number of links to be in any number of places in a hierarchy, or in many hierarchies, or in no hierarchy at all. But Yahoo decided to privilege one way of organizing links over all others, because they wanted to make assertions about what is "real."
One reason Google was adopted so quickly when it came along is that Google understood there is no shelf, and that there is no file system. Google can decide what goes with what after hearing from the user, rather than trying to predict in advance what it is you need to know.
What it comes down to is a "top-down" approach versus a "bottom-up" approach:
Yahoo decided that they would impose order on the web by defining themselves as the "top". Google simply stepped back and let the web emerge as it truly is, and ironically, by doing so, ended up truly on top.
Top-down approaches emphasise planning and a complete understanding of the system. It is inherent that no coding can begin until a sufficient level of detail has been reached in the design of at least some part of the system. This, however, delays testing of the ultimate functional units of a system until significant design is complete. Bottom-up emphasizes coding and early testing, which can begin as soon as the first module has been specified. This approach, however, runs the risk that modules may be coded without having a clear idea of how they link to other parts of the system, and that such linking may not be as easy as first thought. Re-usability of code is one of the main benefits of the bottom-up approach.
p.s. This debate (and the results) also mirrors the different approaches taken in command economies (such as socialism) versus market economies.