There's no inherent need to arrange books by similarity, and there are numerous library systems that don't. (Most have "closed stacks", where patrons submit requests for materials.) The only requirement is that books
be retrievable on request and
can be returned to their assigned location when re-shelved.
A book can occupy only one physical space at one time. If it has an assigned shelf location for storage and retrieval, it can have only one such location.
The Dewey Decimal Classification assigns physical location by assigned subject, for better or worse. There's no essential reason to do this, and there are libraries which assign storage location by arbitrary identifiers, by size (this also tends to happen with DDS-based libraries, where there are specific "oversized" shelving sections, as well as storage for specific media types: maps, photographs, other graphic media (typically large-format), audio, video, software, and data.
For information storage, your storage subsystem (spinning rust, SSD, tape, cloud, CDROM / DVD archive, etched crystal, whaevs) handles the physical storage location element. A filesystem, if it exists, is already a layer of abstraction over that, and is already freed of many of the limitations of physical storage, though largely as a matter of convention and convenience we tend to act as if those still exist, e.g., a file exists in one and only one directory and that directories are hierarchically organised. Both are typical but not inherently necessary.
Tag-based classification drops yet another level of abstraction on top of the filesystem.
Problems with tags emerge in part from their very flexibility. It's possible to apply any given tag to any given work. Informal tagging systems, or "folksonomies", tend to be highly idiosyncratic, inconsistent, redundant, repetitous, and frequently break out in pain points with time.
Looking at this question myself, I see benefit in:
- Reasonably structured metadata. If you ever want to start a riot amongst librarians, declare your metadata schema as "reasonably structured". That said, author/creator, title, creation date(s), publisher, and some attempt at topic or subject classification will likely be useful. Checksums, size, and fingerprints (say, specfied ngram structures) might also be useful. See "Dublin Core" for an example which has both adherants and critics. For any possible set of metadata, you will all but certainly be able to find exceptions or inapplicability.
- "Search is identity". That is, any given set of tags or metadata might be considered a search, and any search will have one of three possible results: 0 matches (failure), 1 match (an identity search), or > 1 match (a result set). How many more than one has some reflection on how useful that result set is. In the same sense that 33 bits will identify any individual person on Earth, you'd need about 27 bits to identify any of the roughly 150 million published works. If your universe is the larger set of recorded but not published works, you'll need to expand your bits accordingly. (A recent estimate I've seen is that for every person on Earth, there's about 1.7 MB/s of data being recorded presently.)
- Names themselves are largely conventions. This might apply to any of the various names associated with a book: its title, its author, its publisher, the publication country or city, the date (and calendar system) associated with with publication, traditions, disciplines, educational institutions, references, etc., associated with it. All of these can and do change. (Quick: what are the names by which Plato, Avicenna, George Sand, Mark Twain, St. Petersburg, New York, Mumbai, and the Wilson School of Government are known by?) Good names are useful in that they are useful conventions and are commonly understood when received by others.