To get valid email addresses, we email the actual requested document to the person. This means quite a few assets have two "leads" come in right after another, one of which is "asdf@asdf.com" and the other is the real email address. I also like this because people can't just share the thank-you page and get the asset without filling out a form. If you want to filter out free email addresses, you could add a step of "not a member of free email addresses smart list."
We use Reachforce for the company popup "picklist," but that comes with its own risk of human error—accidentally disqualifying someone because they chose the mom-and-pop shop with a similar name instead of their enterprise company.
There are some default smart lists in Marketo that have some pretty good filters. Things like "name doesn't contain a vowel," "name contains qwer/asd/jkl/button smashing combinations," "name contains numbers or symbols." That's a great place to start.
Best,
Edward UnthankMarketing Operations Specialist
Yesler