For the moment being, I am not concerned with a number of points you quote ('riding' the boat, boat hitting underwater rocks and so on); they need to be solved of course, but I concentrate in distinguishing between the inside and the outside of the boat to make it empty of water. Let me see if I understand you correctly (and putting aside leaks, they are not the most important point; we may even assume boats never leak, no matter their design):
IIUC, you say: when placing the boat, any point which is above an underwater piece of the boat is 'inside' the boat and is therefore clear of water. This is a nice approach (which does not take into account rudders, propellers or bulbs, but these are possibly secondary details). The biggest shortcoming I see is that this assumes the boat is never going to tilt, but it is always displacing 'flat' on the water, so that the boat model Y axis is always pointing straight up and never slanted.
Even under those assumptions, one can imagine that a reasonably shaped boat is not going to be made of cubic blocks, but of planks, arranged in either a horizontal sequence of 'ribs' or a vertical sequence of 'bands' (and possibly both); each rib or band will be made by several planks each with a different 3D orientation and each plank, in principle, can be partially below and partially above the floating line. If this is not considered quite accurately, it is possible to end up with portions of 'world chunks' filled with water inside the boat and/or void of water outside the boat. So, it seems to me even this approach turns out not so simple and quick. Am I overlooking something?