3. By using meaningful values and separating side-effecting functions from pure ones, we can more easily reason about our program
I'm not sure how that's something that static typing provides, just seems like good functional programming/referential transparency.