Scalar parameter branching should be uniform branching which is super fast on all current gen hardware. But it has one big problem. Shader still has to reserve registers on worst case situation. Register pressure reduce amount of wavefront occupancy which is one of the bottlenecks on current gen consoles.
Is there any good information how UE4 actually handles shader compilation and permutations?