Could you explain?
That other languages allow something as innocuous as `getName()` to also call `launchMissiles()` under the hood is wrong. Pure FP langs slapping you on the wrist for trying that is part of their value proposition.
It's akin to saying, "why does C worry so much about memory allocation? It should know when I'm done with resources!"
You can have a strict language with an IO monad, and some people actually prefer that.