>>AV seems not to index the actual index page, but the page used in the main frame of the index page.<<
First off, it's certainly better from a search engine POV not to use frames -- I've learned this from some hard experience. However, if frames are unavoidable for some reason, here's some comments.
if (parent == self) location.replace("frameset.html");
Since this is a kind of redirect, care should be taken not to incur the wrath of the SE redirect gods.
1) It's best to call this function from an external .js file so spiders do not see the redirect code.
2) Unless compatibility with version 3 browsers is important, use replace() rather than simply defining a new location. This will keep the browser history list intuitive and avoid letters of complaint to Alta that the back button gets stuck in a loop.
3) If you have more than one content page which can be loaded in a frame, you would need to set up a separate js and a separate frameset for each one, else everyone will get sent to the top level content, no matter which page the search engine refered them to.
Hope that helps.