They're both telling the truth.
Schema.org just provides a vocabulary: an agreed way to represent information. The things which use that vocabulary, like Google Search, can have their own requirements.
In the case of FAQPage, Google uses the vocabulary to represent a certain type of information (FAQs) in a special way (an expanded search result). For it to work, certain pieces of information have to be provided in specific ways.
Similarly, the English language has an agreed vocabulary. None of it is mandatory — we can use or not use words as we wish — but certain uses of it have their own requirements. For instance, if I want to write a legally valid contract.