Yes, there is a way to modify the web parts on a page programmatically. However, there are a few issues. You can’t really add ListViewPart or ListFormWebPart because they have embedded GUIDs… and the import process for ListViewWebPart is broken. (This is the web part that most people mistake for the list itself.
Echo from WinAppTechnologies does this. I have some code, not in a finalized product form, that does the same thing.
Note that you’ll have to flip a bit to allow one web part to add other web parts to the page, you’ll have to work out impersonation, and the web parts are likely to not load the first time through. (The list of web parts for the page has already been generated by the time your web part adds them to the page.
I suppose I should blog about my SPWPADM utility … it will allow you to script additions and deletions of web parts from a command line. It would be a crude way to do it but you could force the web parts to appear on a periodic basis with the tool. Send me an off-list email if you want to beta it.