A customer just wondered why a pipeline that uses p:validate-with-schematron behaves differently for two documents although each of them rises a Schematron error. Since we were only interested in the SVRL, I switched assert-valid to false and then both documents behaved the same. It turns out that in one of the reports, there was an svrl:failed-assert while the other one only contained an svrl:successful-report. Checking the code brought to light that you only check for failed-asserts, not for successful-reports. In my view they should be treated the same though, that is, in Schematron a successful report is a failed assertion.
In any case, we should clarify in the 3.0 spec whether the presence of an svrl:successful-report is supposed to raise the same dynamic error as svrl:failed-assert when assert-valid="true".