Hi Mike,
It’s designed to only output the structured data in source code but not render anything on the front end.
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.
Does this answer your question?