I think there are at least 3 requirements:
1) A status message - text to describe any warning or error condition [or indeed success]. Because the message may be produced 2 or 3 function calls down, it must percolate back up and be displayed properly to the user.
2) A status code - that can be tested to see if the function status is anything but 'Success' and may dictate further action(s) by the calling function.
3) A function result - any return value produced by the function.
The messages, whether produced in Form/Field Actions or regular Functions must display to every user not just administrator(s).