Pros and Cons of Branched Path Tracing
I've tested tens of scenes using BPT and regular PT and so far there are no major cons at all when using BPT. 
Some somewhat minor issues would be, knowing how to tweak the settings manually and slower viewport refresh during the first few samples (samples in BPT are slower)...

Other than that the its easier to test your models using regular PT and at the end of your scene switch to BPT when you know all the details of the shaders you are using...

As far as CPU vs GPU it seems to work the same, meaning it always beats regular PT, at least in all my tests, probably older (2015-2016) versions of Blender had no advantage using CPU, but as far as newer versions (2.78 and up) it is the better.