When your process finishes and you return "@Error@", the process is marked as not successful and a rollback is done. However, you cannot provide a error message because of the structure of SvrProcess. The only way to do this is to throw an error. But this is not always a good idea, especially if your process isn't really having trouble but you only want to mark it as failed. Also you don't always want the error message to be logged in the issue tables.
Let me give you an example:
I have a process which i start via a WebService. The process simply checks if the BP has a invoice adress (attachment 1) . The connected system uses the response to determine if the user is allowed to make an order. The response from the WebService contains a message. However, if the process fails, it only says "Error:" without more information which would be useful in my oppinion. Take a look at attachment 2 to compare the responses. With a minor change in SvrProcess (see patch), a error message could be provided (attachment 3)