I really like the boat thing. You can also put it this way: if with a bucket of paint I can paint the hull of an "a" feet boat, how long a boat can I paint (assuming the boats are similar) if I have 2 buckets? Answer: I can paint a boat which is a*Sqrt(2) long (and not twice as long!).
More generally, if with one bucket of paint I can do an "a" long boat, with "n" buckets of paint, I can do a boat which is x=a*Sqrt(n) long. That's because k*x^2=k*n*a^2, where k is the form coefficient: the two "k" cancel out, and we solve for "x", discarding, of course, the negative solution. This "k" thing is the reason why Pythagorean theorem holds for any shape: "k" cancels out when we solve.
But what if we want to paint many small boats with the same bucket that allows us to do an "l" long boat? As you stated, any triangle can be split in 2 similar triangles. But then, any form, e.g. the hull of a boat, can be split in 2 similar forms and so on and on. Let the surface of the boat be k*l^2. We can paint as many smaller boats as we want (all the same or different), as long as k*l^2=k*a^2+k*b^2+k^c^2... or, after "k" cancels out, l^2=a^2+b^2+c^2...
If the smaller boats are all the same, and we have "n" of them, that becomes l^2=n*x^2 and, if we solve for x, x=(l^2)/(Sqrt(n)), discarding the negative solution.
If feel that Pythagorean theorem can indeed be extanded beyond triangles, but then, we are left with plain algebra to work with. Pythagorean theorem also can't easily solve the "n" boats problem: we must use algebra for that.