Kenneth,
It will work for Routine 1 as the Routine 1 is only checking for Goods movement status to be "C" ; there is no checking for the Credit block in case of routine 1.
FORM KOBEV_001.
* Work area KOMKBV2 is available
* If goods issue has been posted for the delivery, then the output
* should be created.
IF KOMKBV2-WBSTK = 'C'.
SY-SUBRC = 0.
ELSE.
SY-SUBRC = 4.
ENDIF.
ENDFORM.
In case of Routine 3, it is only checking the credit block and not the goods movement.
So by changing the Routine, the checking/testing parameters are getting changed hence the result is also changing.