Structured data (like schema.org markup) should traditionally be used on visible content (a search on here will confirm that) and Google and others have said as much.
However, schema.org is now supporting JSON which would never be visible on-page. Additionally, and for quite some time, the Good Relations Snippet Generator has created snippets that are empty divs with instructions to post it before the closing
<body> tag of your webpages.
Does anyone have practical experience (even better, A/B testing) of the results (or problems) from using Semantic Web markup on visible vs. non-visible content or any insight/guidelines?