In properly designed BPM system process engine should be entirely isolated from user interface through well-crafted API. If user interface is mixed process engine, it is an evident disaster. Process engine should run as a service in unattended mode and, ideally, should be also clustered for fault tolerance. User interface of a process engine is normally an administrative dashboard showing its status and notifications on accidents. Nobody cares about it much, as far as it works smoothly. Quality of BPM system is inverse proportion to attention, which its users should pay to user interface of its engine.
User interface is crucial for instances of running processes. But these processes may not even belong to BPM system itself. For instance, if a user receives a message as a part of a business process, he or she need not even know that it came from a BPM engine. User can read a message in any message system and take proper actions to execute process being not aware about all complexities of BPM processing behind. Better BPM system is organized, less visible it is. BPM engine is a service to make all dirty work of process automation behind the scene. As with any service, it should stay invisible as much as possible and provide end users with results they expect timely and free of errors.
Running good BPM engine should be similar to running a car. Driver should watch the road instead of inspecting how gears move inside the vehicle.
Some really interesting points you have written.Helped me a lot,
just what I was searching for :D.