The learning curve is steep if you are not familiar w/ static typing, and its not unheard of to run into bugs in flow itself, but overall I have found it to be really helpful.
In my experience it pays off best in refactors - in projects w/ good flow types I have been able to make big changes to my code, fix flow errors, and then have tests pass on the first run.
It's also great when working on code that others wrote - the type annotations are about the same amount of boilerplate as something like jsdoc, but having them checked automatically in my editor saves a lot of context switching between files.