I could see it working either way, and arguments for both of them. I confess I haven't dived into what it actually does.
Most likely, serving the resources with "br" they will be smaller than when served with "gzip". However, NPS will cached gzipped versions of its optimized results in its server-side cache, and will not have to be recompressed on each request.
So if the Cloudflare module takes the PageSpeed gzipped responses, unzips them, brotli-encodes them, and then puts them in another cache (maybe on the Cloudflare CDN), that would be fine. The server will have done a little extra work every time the resource changes, but on a warm CDN cache that will be fine. The PageSpeed optimized results will be cacheable for a year, so it would be worth it.
However, if the brotli-encoded results are not cached, I think on-the-fly Brotli re-encoding of static assets would be bad for performance: both the load-time of the CPU running nginx, and the latency seen by the end user. If the gzip-decode & brotli-encode has to happen on *every* request, it would probably add more to the latency than the smaller encoding format would save in transmit time.
-Josh