Interesting ideas...
- I haven't thought about adding physical books to the library. I think that can be added with minimal effort, but I need to think about it. I still prefer the files to keep the information about themselves, but in the case of physical books (and other documents) that is a challenge (let me see if I can find a way for my program to print a metadata card and put that in the book -without user interaction :P).
- Implementing the Dewey Decimal System is above me. I don't have the expertise, and I think that would be an overkill for most of the personal bookshelves. So, hierarchical tagging is not something I would go for (not from day one). But a well implemented seach function may be helpful finding books about "Westinghouse steam turbines".
- I think I didn't get your point about the versioning system. Do you want to keep several versions of a book in your folder (e.g., mybook_v1, mybook_v2) or do you want the database to keep previous version of the same book? I don't see a problem with the former. If you want the latter I will ask you to elaborate (btw: I use git on a daily basis).
- I guess if I happen to implement an option to cover physical books, it will also cover other document formats that are not easy/possible to embed metadata into.
Linux is fine