"False" seems too strong. The job it does is track lifetimes. That's a job you should be doing anyway in C/C++.
It does so better than you can in that it doesn't have false negatives anywhere you're sufficiently playing by its rules.
You can also do so better than it can, in that you can see reasons things are okay that it can't understand.
I agree that there are too many false positives to assert that a competent C or C++ programmer doesn't have learning to do to appease (and leverage) the borrow checker.