The "open-book exam" framing is the cleanest way I have seen to explain why retrieval quality caps everything downstream. The failure mode I hit most often is the one your ambiguous-question point hints at: the retriever confidently returns the top-k chunks even when none of them contain the answer, so the model grounds itself in near-misses. Adding a relevance-threshold check before generation (and letting it return "not in the docs") caught more of my hallucinations than any prompt tweak did.