In our experience, a combination of site structure and tags will give the optimal results. Even though tagging is valuable, it can’t replace site structure because it is valuable to have different sites and libraries to target broad sets of content to different audiences. Or, you may want to have different security settings or permissions for different content sets, which cannot be easily done with metadata alone.
Tags add value to a site structure approach to help users filter through documents within a site or library. Without tags, you would have to create a very details set of sites, libraries, and folders and it most likely would not be scalable. Also, when doing a keyword search across all sites and libraries, tags will help filter those results in a way that site structure alone cannot do.