The Diamond has a main restaurant for those people that select traditional dining (same time and table every night). For people that choose anytime dining, they have 4 restaurants (southwestern, oriental, steak, and I think italian). Each of these restaurants have their own menu (the same every night) as well as the main/traditional dining room menu that changes every night. There are no charges for those 4 restaurants. We have done anytime dining on all cruises since Princess implemented it, and really like it. I believe that even those that have traditional dining can go to any of the anytime dining rooms should they choose. Also, the main/traditional dining room will have selections from each of the other restaurants on different nights. I understand that you can always order food from any of the restaurants, even if you are not in that restaurant. In other words, there is a lot of flexibility without paying an additional charge.
In addition, there is Sabatini's which does have a charge (I think it is $20). I did Sabatini's on the Grand several years ago. You should be able to find several recent write ups on Sabatini's on the message boards. I really enjoyed it, as do most of the people whose comments I have read. I am on the Grand at the end of January, and plan on eating at Sabatini's.
Princess doesn't do a midnight buffet anymore, but I think that they have a buffet the night they do their deck party. They also have 24 hour dining in the Horizon Court, including a late night Bistro. I have never tried the late night Bistro.
I was on the Diamond in December, and loved the ship. I like the Diamond best of all the ships I've been on (15 Princess cruises and 3 others).