As far as the downside of using iframes, I think the only real issue is one of seo. Since the content in the iframe is on a different page the content doesn't get indexed. It shouldn't be an issue for you.
The ads look fine in Safari on a Mac. In Opera the Learn More buttons are too high and sitting on top of some of the link text. The space between them is gone. It looks like the buttons are using absolute positioning to set them at the bottom. That really shouldn't be necessary, though I assume you did that to keep all the iframes the same size and still have the buttons be at the bottom.
I did this really quick and didn't exactly test to see if it works, but you might try this on each of the pages within the iframe. As you can see I didn't fill in everything either, but hopefully it's enough to show you how I would have set things up.
If you can't get it to work let me know. I should be able to give you all the code with few more minutes of non-laziness. 
HTML Code:
<div class="book-ad">
<a class="book-image" href=""><img src="" alt="" /></a>
<a class="book-title" href=""></a>
<p class="author"></p>
<a class="action-button" href=""><img src="" alt="" /></a>
</div>
You don't need all those classes, but I added them so you can better identify what goes where. Here's some quick css.
Code:
body {background: #0ff}
.book-ad {padding:10px 5px; text-align: center; height:240px; width:120px; position: relative}
.book-ad p {margin-top: 0}
.action-button {position: absolute; bottom: 10px}
I think the Opera issue is that the button is being positioned in relation to something other than the whole ad. If you add position: relative to the ad div it should work. I also added in the width and height on the ad div since it doesn't look to me like Opera is honoring the width and height.
Bookmarks