Is it a good practice to have balanced Gateways
It depends on the type of Gateway.
In Oracle BPM 11g, a parallel gateway can either be a splitting gateway (indicated by shading on the left side) or a merging gateway (indicated by shading on the right side). In the simple case, Parallel Gateways have to be balanced. You start with a Parallel Split and end with a Parallel Join. The exception to this is an outgoing path that ends in an "End Event" - in this case you need not have a merging Parallel gateway. Also a Parallel Gateway split can end with a Complex Gateway merge. You would generally use this when you want to execute all the outgoing paths in parallel but want to terminate active paths if certain conditions are met example: if 2 out of 3 paths have been completed, you might want to end the parallel scope and move forward.
Exclusive gateway
Only a Split Exclusive Gateway is needed in most cases. You need not have a merge Exclusive Gateway. The outgoing paths of an Exclusive Split Gateways can also retrace to a previous step to create a loop. It is the only Gateway that Oracle BPM 11g BPMN Editor allows to be added unpaired.
Inclusive Gateway
Inclusive gateways are very similar to parallel gateways. The outgoing paths of an inclusive gateway, other than one default sequence flow, have conditional expressions associated with them, just as exclusive gateway. On the merging side, you need an Inclusive Gateway merge to join the different outgoing flows.
Complex Gateway
It is a Merging gateway only and is used in conjunction with Parallel split gateway