100% - and even the best developer may not understand all of a user's needs until they get their hands on a prototype. We should always expect to learn and pivot as we learn more about users.
I would even rephrase it that way: "even the best user may not understand all of their needs until they get their hands on a prototype."
Exactly. I've never seen a (non-trivial) requirements specification that doesn't contain holes, contradictions, imprecision, or requirements that will be dropped or altered during development.