Individual Communities Do Have a Say
From my experience, to a large extent, individual communities do have a very strong say in what is accepted on their site. For sites that have been in beta for awhile, it seems that the community team rarely, if ever, gets involved, unless something becomes a significant problem or if the site starts to show signs of growth, combined with a pattern that, from experience, will lead to chaos. It's when the issues are noticeably harmful that they'll step in.
Thus, if a site accepts book recommendation questions, and these happen very infrequently, and those questions tend to actually get answers based on facts, references, specific expertise, or that are backed by personal experiences, then Stack Exchange is not likely to get involved. If you think about it, this makes sense. If the community isn't harmed by such questions, why dictate a policy that doesn't fit.
As a pro temp moderator on Project Management SE now for almost 2 years, I've found there are many things that our community hasn't yet come to a consensus on. As a moderator, I try to stay out of moderating certain areas where there isn't at least some consensus or community support, and in my experience, putting these decisions on hold haven't caused our site to implode on itself.
As we have grown over the last 21 months, we have improved our FAQ and have explicitly marked tool recommendation and book recommendation questions as off-topic, mostly because they attract a lot of spam and low quality answers. This isn't something that happened overnight; instead, we made this decision after the community experienced first-hand how it looks to have questions like these litter the main page.
But still, if one of these questions shows up on our site, we still evaluate it based on its own merits...
Lighter Moderation
If you look at A Theory of Moderation, it's clear the leadership of Stack Exchange prefers pro temp moderators to take a lighter approach to moderation, instead of a heavy handed approach:
Even with active community self-regulation, moderators occasionally need to intervene. Moderators are human exception handlers, there to deal with those (hopefully rare) exceptional conditions that should not normally happen, but when they do, they can bring your entire community to a screaming halt — if you don’t have human exception handling in place.
With 5,000 questions per day, it's critical that the standards of Stack Overflow be strict and well-defined. Now, why is this? I'll venture to say it's because you can't reason with millions of people who may detect a pattern and follow suit. However, on a fledgling beta site with 2 questions per day and people you almost know by first name, it's much easier to guide the community and take more time in determining if something is harmful or beneficial. If it's not going to bring the community to a "screaming halt", then perhaps it's best to not act but instead to start a meta discussion.
Leadership
I don't have the link (so maybe it didn't happen), but Jeff and Joel said once that, being programmers, it was easier to start Stack Overflow and moderate it themselves. But for Q&A sites about topics they had no experience in, they didn't feel they should dictate all of the rules.
What this basically comes down to is leadership. Each community must become self-governing, and to make this happen, Stack Exchange must to some extent get out of the way and let community members work out their own problems. At first, there may be a lot of mistakes, but part of being a leader is letting people, communities, and moderators make those mistakes, and then offering assistance and guidance when problems arise that the communities cannot handle themselves.
Of course, it's also possible that we discover that a policy made for one group of Stack Exchange sites is unnecessary for another. This find wouldn't occur if hard-fast rules were strictly enforced from day one.
How to keep these questions constructive:
1. Make sure the question is about a real, actual problem and not just a poll for books.
If someone asks a question about a book, hopefully they've also described a problem. On PMSE, many of our tool recommendation and book recommendation questions accompany a problem the OP is facing; thus, the community responds with solutions first. Many of these questions are answered without even mentioning a book or a tool. The best questions are about a real, actual problem you're facing, and even a book recommendation question can contain these elements.
If the question is simply a poll asking for books or tools, with no problem description, we happily close these.
2. Answer the questions by clearly providing a solution.
Don't just answer with a link or the name of a book. Explain why it can help solve the problem, but also be sure to share your own expertise and answer the deeper question. When someone asks for a book, what they really want is an answer to some other problem, so give them an answer that might even make it so that they don't need to go buy the book. After all, that's what Stack Exchange is here for. ;)
Again, this depends on the asker actually describing the problem. In general, asking in the comment, "What are you hoping the book will help you with? Can you describe the problem you're facing?" can help draw this out of the asker.
3. This depends on the community
If the community's response to these types of questions is largely link only answers, with no attempt to solicit more information from the asker via comments or attempts to improve the question, then these questions just simply may not work for that community. If people rush to answer without meeting the first two guidelines, providing only superficial answers, then the community may want to consider disallowing these types of questions.
If the community does a good job cleaning these posts up via editing, commenting, and providing superior answers, then the cost of disallowing these questions may only serve to alienate people for no good reason. Whether or not these questions can exist depends on whether or not there are enough users who can lead by example, and if disallowing the questions is going to be more harmful to the community than allowing them, then maybe it's a good idea to simply keep a watchful eye on them and only bring up the issue in meta if it becomes a problem.