Success at last! Letting F1 = f(x,f(y,z)) and F2 = f(f(x,y),z), F1 becomes the sum of two terms with square-roots inside square roots. In Maple, we can extract the first one as L1 = op(1,F1). Since we are trying to prove F1 = F2, let's follow the suggestion by 'micromass' and compare L1 with R1 = F2 - op(2,F1); these ought to be equal, because in Maple we have F1 = op(1,F1)+op(2,F1). Leaving off the question of signs, square and expand both L1 and R1. We find that RR1 = R1^2 consists of 11 separate terms, of which two involve the same square-roots-within square-roots, but with different outside factors---both negative. The exact way to extract these depends on where they occur in the expression tree, but one can list all 11 terms through S = seq(op(i,RR1),i=1..11); in one session the two terms of interest were S[5] and S[11]. Writing RR1 = RR1a -S[5]-S[11], we want to prove that S[5]+S[11] = RR1a - L1^2. Now the right-hand-side no longer has square-roots inside square-roots. When we again square and compare (S[5]+S[11])^2 with (RR1a-L1^2)^2, we find the difference = 0!
Note that the exact way of extracting the wanted terms may be session-dependent and/or machine-dependent, etc., so success depends on a mix of human and machine processing, with the human determining what terms to group together. Getting a machine to do this unaided might be almost beyond the capabilities of current software.
In principle, all the work above could be done manually, if you have a couple of free days to spare dong algebra.
Of course, since we compared squares with squares, there are still sign considerations to worry about, but those seem comparatively simple to deal with.