Just seems to be a way of organising code really.
What about state modified via closures?
Or is it only for system side-effects like filesystem operations?
The compiler can't. It is up to the programmer to make sure that a database effect doesn't, say for sake of example, write out to a file also.
So in the end this is just a novel new way to organise code.
That has to require some help from the tooling/IDE.