Designing a service/business logic layer that returns useful/consistent messages
The problem with returning a message like this is that you are "hard coding" the messages in the registration method.  If you want to add localization (i.e. return a message in the users language as determined by the culture setting of the client) to the application later it will be much harder.  A cleaner approach would be to use custom exceptions and exception handling.  For example, if the an invalid email address is entered then a InvalidEmailException would be thrown by the RegisterUser method.  The part of the application that calls the RegisterUser method would determine what to present to the user for this type of exception or to percolate it up higher in the application for handling.  This is a cleaner separation of concerns of handling exceptions in the application from what is presented to the user.  This also promotes reuse because different users of the method may want to handle it differently.