BPM: general design question

Trying to learn a little about BPM design. Right now mostly using them to display data validation (from a business process perspective, not a database perspective) messages.

From a troubleshooting / maintenance / design perspective, it is better to have multiple smaller, simple BPMs or one big one with lots of conditions.

For example, there is a currently a BPM that does the following on an order line:
Checks if customer group is INT
If Y, then stop
If N, then
Checks if product group begins with Z
If N, then stop (error)
If Y, then
Checks if carrier account number = 123
If Y, then stop
If N, then stop (error)

Each check here is pretty simple and easy to re-create if the same logic were to be used in another BPM. But it occurred to me that it might be more efficient to store each one separately so that they can be combined in different ways.

Are there any best practices related to this?

From a design perspective I would do everything in one block trying to minimize the queries to the database. Additionally, I would perform all my validations and concatenate the error descriptions in 1 string variable, at the end if that variable <> “”, I would throw an exception