I'm reading doCarmo's book Riemannian geometry, and at the page 157 is this theorem.
My problem is at the very end, when he says that if we show that $\tilde{J}(l)=(df)_q(v)=(df)_q(J(l))$ then the proof is complete. My question is why? Is this fact implies that $f$ is local diffeo? If that is true, my question is why?

In order to prove that $f$ is an isometry, one needs to show that $f$ preserves lengths. So here one needs to show that $|df_q(v)| = |v|$ for every $q\in V$. Also recall that the Jacobi vector field was chosen such that $J(\ell) = v$.
The inverse function theorem implies that an isometry is a local diffeomorphism. Indeed, since the differential $df_q$ maps non-zero vectors to non-zero vectors, $df_q$ is non-singular, and hence there is a neighborhood around $q$ such that $f$ is a diffeomorphism.