As far as we know, this was always the behavior. A before commit handler returning false only affects the actual commit (which won't go through) but does not affect whether the rest of a microflow that has a commit action will be executed.
Are you absolutely sure this was not the case in a previous version? If so, a test project would be appreciated. But either way, the behavior should be as you described for 2.5.5
Edit: There's no way to check if a commit succeeded in a microflow. You could call the validation microflow yourself before committing and then commit without events. Or file a feature request for the commit action to return a boolean which will tell you if it succeeded or not.
This is indeed quite annoying behavior and very tricky. The same problems arise when using datavalidations and the MF is called from a webservice etc. So I use the following rule of thumb/ workaround:
Before commits should always return true or throw an exception
You can throw exceptions by using the community commons package.
Note that one check you can consider is the isNew check if your object is still isNew after the commit, the commit failed. But this is only useful with new objects.