Welcome to WebmasterWorld Guest from 220.127.116.11
As I understand the 301 redirect it tells the Bot that this URL doesn’t exist anymore please go here and index this URL.
Now as long as it is indexing only one version of your homepage then you shouldn’t have a problem.
mysite.com/directory/oldpage.htm redirects to mysite.com
If you are being indexed with your homepage and your server default homepage then yes you might have problems,
mysite.com/directory/oldpage.htm redirects to mysite.com/index.htm instead of mysite.com
if you have two versions of the homepage in the index then there could be issues with which is the correct page.
A 404 or a 410 server response will also tell the Bots that the page no longer available I can only assume you are using the 301 so the value of the old page is passed onto the homepage.
As mentioned above you should always test your sever headers before applying any changes.
Could this cause Google to think all of these pages were the same as the main page, thus throwing my main page into duplicate content penalty
I'm not sure if 'penalty' is the right word, but yes, I think these would be seen as duplicates. I suggest all indexed URLs to non-existent pages return a 404.
If suddenly many pages have moved and each one has a new counterpart, then that too is fine.
If many pages have moved, and you say they have all moved to one single new URL then that is not fine. I would return a custom 404 page in that case; the page containing basic site navigation clues to get the user on their way to the correct part of the site.
and wanted to remove page=1, 2, 3, etc. from the index, and only stick with widgets.html
would a 301 redirect to *ANY* query string page whether it's page=1, page=2 , or?blahblahblah to widgets.html