1) We cannot get all bond lengths perfect because: the average protein in your
body has about 250 residues, that means (if we forget about protons) about
2500 bond lengths, and each time you correct one bond length between
two atoms, you make all other bond lengths these two atoms are involved in
a bit worse; and when you correct those, you make everything a bit worse that
are one bond further away, etc. The problem simply is too complex to solve
analitically, and iteratively it is hard to solve it in
any reasonable amount of time.
2) See the previous question, the data is still the same.
3) The algorithm is just like you did it with the three atoms from figure 51.
a) We take each pair of atoms, b) determine the vectors needed to correct that
bond length, c) add up all correction vectors for each atom, d) apply the
summed vector per atom to that atoms position, e) repeat the process till
your patience runs out.
4) No. There is no null-model. There is no expectation for where the atoms
have to be placed without any external influence, and without expected values
there cannot be a null-model.