Hi,
The point of being invisible on page is that schema markup is intended for search engines, not human beings, and you might want to present the information differently.
For example, we have a blog post titled What is Responsive Web Design?. In addition to answering the question in the title, the article also talks about other aspects of responsive web design, plus a bit of advertising at the end.
If you search for “FAQPage” in the source code, you’ll find a FAQ markup that answers what responsive web design is, but it’s kept short in hope that it would get more clicks.
Using this invisible FAQ schema widget allows us to present the answer differently to search engine, without affecting the flow and readability of the article.
Search engines should know the information in the schema markup is there to help them understand what the page is about, and therefore you shouldn’t be penalized for repeating the information. This applies not just to FAQ, but also other markups like products, events and etc.
Hope this helps.