It's better (conceptually and in performance) to use the inner block, but is not always necessary. The #or: message sends the `value` message to it's collaborator if the bolean is false. Blocks responds to value executing theirs code, but all objects respond to value since it's defined in the Object class as ^self. Therefore, the result is the same but the messages involved and the order in which they are being sent are not. In performance, for the case where the first bolean was true, is better the one with the surrounding block , since the code inside it is never being executed.
You should really try both versions with the debugger to see it by yourself.
Cheers,
Santiago Dandois