We have found a work around for hiding a form only for contacts who are already opted in, but to show the form for anyone not in the database, or those who are not opted in.
Currently, you can use the If Known Visitor, show Custom HTML in the form settings, but this will show custom HTML for ALL known visitors. There is no way in the form to add a filter to only use the custom HTML code for those known visitors who are opted in to your database.
If you use Segmentation in conjunction with Dynamic Content, you can show custom HTML to only those who are opted in.
We set up a Segmentation for Opted In first. We used filters of Opt In for both Not Opted-In and Opted-In. No filters set for Default.
Then in the program where the landing pages and forms are located, clone the form that is used for anyone who needs to fill it out (contacts not opted in or contacts not yet in your database). Label this cloned form so you know it is for contacts who are opted in already. Edit the form to use Custom HTML for Known Visitors. Add the link to the downloadable resource, or link to web page, etc here. In the landing page, use the original form that should show for anyone not opted in. Then make it dynamic by adding a segmentation. Choose the Opted in segmentation. Click into the Opted-In segmentation on the right navigation and click on the form. Right click to edit, and choose your Opted In form instead.
Essentially anyone who is opted in will see the form that has the Custom HTML. Because they are a Known Visitor, they will be able to skip the form and click right to the resource. If they are not opted in or not in the database, they will see the original form created that does not have Custom HTML.
We do not have any other Segmentations in our instance, so I'm unsure how this will work when using additional segmentations.