I think that by being aware of these drawbacks of this functionality you can still create effective business logic that is very very quick and also less prone to error rather when compared with writing custom code, therefore more supportable in future upgrades.
The fantastic news is that in CRM 2015 Business Rules have been greatly improved, they are pretty awesome now and one of the drawbacks I mentioned above have been taken care of from this new awesomeness. Old Business Rules used to be linear business logic, now they have the option to be branched business logic.
They achieve this in a number of ways, the two major points are listed below.
1) There is now the possibility to ‘+ Add Else’ after you have began constructing your first section of logic. If you were to then only to create one branch, if it effectively an IF ELSE statement, however you can go even further than that and add a Second branch and so on which become ELSE IF additions to your logic. You can see this in the image above.
2) Not only can you add branches but you can specify the conditions AND & OR on your conditions as well. So your first section could be If Account Name contains ‘A’ AND If Account Name contains ‘B’ then do X else If Account Name contains ‘C’ OR If Account Name contains ‘D’ then do X. The important thing though is you cannot have one condition with both and & or it has to be one or the other.
By opening up Business Rules to be capable of branching you no longer have to deal with linear logic and the result is you can make some very powerful client side logic. You no longer have to construct ‘opposite’ rules and can deal with these in ‘else & else if’ statements, meaning your business logic is in one rule as opposed to two or more. However, with great power comes great responsibility, I recommend to not be complacent just because you don’t have to write code. Business Rules still need implementing correctly and because they have effectively become more complicated with this additional functionality, whilst that is an amazing thing, you need to think about the branches and what they could mean for your user experience so still need to be fully tested.
On an ending note, whilst I was playing around with the new business rules I also found they have added a new action you can perform that was not present in CRM 2013 – ‘Set Default Value‘. This could be useful as the end of your branching business logic, a bit like the ‘default’ branch of a switch statement.