I agree on not passing null around, but passing an empty string instead is interesting.
In this case I can imagine that the NameInverter class is part of something bigger, where the name comes from user input. I would test the validation of my input for null, empty string and even the required format before trying to invert the name. In that case I don't need to throw an exception or return an empty string in the NameInverter class, but also making sure no invalid data gets passed around.
However when the NameInverter is going to be a public library on the internet for everyone to use (as a helper method) I would take a more defensive approach and throw a custom Exception that explains the problem. InvalidNameException would be very nice! :)
For an external system I don't know the details of I would use the same approach as user input and check whatever comes from there first.
Replying to this was a good exercise for myself. But I would love to hear how others think about this.