Hi Michel here goes my opinion
On scenario 2 / 4 I will use COMRETURNERROR since I whant to state that an exception has occurred e.g. validation failed or an error as occured the explanation message is what you put on the comreturnerror.
On scenario 3 I will return an empty string since everything is OK but no data has match my criteria.
Alexandre Palma
Senior Application Architect