Ejection systems are pretty advanced. A secondary black-box or just transponder that ejects in the event of rapid acceleration or altitude loss could be helpful, although the engineering of getting it into an airliner might be a bit tough.
There were certainly parts of Air France 447 that floated. I think the largest piece may have been a section of tail. I don't know if there are parts that reliably float in the case of an accident over water but I'd guess that tail sections and winglets are good candidates.
I was thinking about the added weight of a black box though. My possibly naive assumption is that they're heavy because they're so robust, so would need serious buoyancy. I can't find a weight for them though so I might be wrong.
That may be true of existing black boxes, but a purpose-designed solid-state black box wouldn't have to be very big. Especially if it was optimized for surviving impact with water rather than, for example, a mountain.
In fact, I was just thinking about how you could probably put a miniature blackbox in every single airline seat. Airline seats are already designed to float, and you'd only need one of them to be recoverable. Such a black box might not be capable of storing everything traditional black boxes do, but if it managed to capture a last moment GPS position it might make it much easier to find the regular black box.
I'm not at all certain that's true at the extremes for which black boxes are designed. A difference between thousands of Gs and tens-of-thousands of Gs wouldn't matter for the airplane fuselage, but it might matter for solid-state electronics. I don't know if you'd get that kind of force differential between a water impact and say, slamming into a solid granite wall. But I'm to ready to discount it.
But even if we assume that there really isn't a meaningful difference in the physics of a ground vs. water impact, I think there still might be an advantage to having your conventional black box optimized for maximum survivability and having an auxiliary black box which sacrifices some degree of survivability at the extremes in exchange for improved discoverability after an accident.
You could have several bright orange foam blocks containing memory and a radio beacon on the outside of the plane that detach in water. You then send blackbox data to them using em loops inside the fuselage. That would be pretty cheap and would also help in mapping debris on land.