I completely agree with the first paragraph. I help maintain a (Java) web based system with workflow at the core which has a split in the workflow route which allows two teams to work independently on "cases". If we didn't have this situation we would have just built our own simple workflow into the app using flags in database tables.