I cannot speak to the issue of best practices, but what you have discovered is akin to this:
if I had a customer master, and I had a balance due field, then I wouldn't want to dynamically calculate that every time I wanted to know what the guys balance was. I would want it maintained in the customer header.
It makes sense that if a book is available, I should just have a field in book master table it says available yes/no.
Many of those sample applications were written long ago come I think 5 plus years.
Without asking the author, it may just have been written as an example of how a business rule can be used.
Since you said the word "process", where in this hypothetical application would you put "the process" to maintain the status of a book availability?
I think if you watch the video on Business Rules, you may get some insight.
Programming with rules is a different animal - and I myself just used something this week for the first time USING a rule where before I would have made it more Procedural (I pushed a button to run a process and in that code, I made something happen). The Rules way would be to do less in the process and let the Object react (via Rules) that something was done to it.
In the library, instead of having multiple hooks throughout the system to maintain the AvailableYN flag, it just determines it on the fly.
Of course, context is important. the size of your system, speed of server, frequency of use of a function.
yes, we tend to want to be efficient - not wasteful of bytes or cpu cycles, but if I'm writing an in-house system for 25-50 users, thats a lot diff. than a SAAS app for the public. If a table is only going to have 1500 records in it, for example, an Inventory table, then who cares if I'm wasting 50-100 extra bytes per record? Having some redundant data de-normalized in there for sake of searching is not that big of a deal.
But if you made one mistake and put a binary field in that rec for a logo/image/etc., you could have a terrible negative impact on system-wide performance every time that inventory rec is read. (read this post)