There are no side effects to worry about. Memory management is automatic. No computerese appears on the screen or in manuals. The system is mathematically friendly in the sense that informal and semiformal verification of programs is not only practical, useful, and error exposing, but also easy for a mathematician. This remains true as long as the strictly mathematical complications are under full control by the mathematician programmer.
Formal specifications are remarkably close to actual code.
We have previously done some research on making this much more palatable to mathematicians. We expect that formal verification will be seriously viable in this programming system using appropriate improvements to Mizar. Functional programming is intended to meet such criteria, although it needs a lot more sugar to be palatable to the mathematician. However, conventional wisdom is that it is too inefficient to be viable, and can only be fixed by adding imperative constructs that destroy its strengths. Through a detailed formal study of implementation on a finite RAM model, an implementational calculus can be developed which gives useful inductively presented upper bounds on time and space requirements.